flutterwave_v3_models/payment_plans/
get_plans.rs

1use super::{Interval, PlanApiResData};
2use crate::common::multi_res_meta::MultiResMeta;
3use serde::{Deserialize, Serialize};
4use validator::Validate;
5use crate::fwcall::{FwCall, ToFwCall};
6use serde_qs;
7use std::borrow::Cow;
8
9#[derive(Debug, Serialize, Deserialize, Validate)]
10pub struct GetPlansReq {
11    pub from: Option<String>,
12    pub to: Option<String>,
13    pub page: Option<i32>,
14    pub amount: Option<i32>,
15    pub currency: Option<String>,
16    pub interval: Option<Interval>,
17    pub status: Option<String>,
18}
19
20#[derive(Debug, Serialize, Deserialize)]
21pub struct GetPlansRes {
22    pub status: String,
23    pub message: String,
24    pub meta: MultiResMeta,
25    pub data: Vec<PlanApiResData>,
26}
27
28impl<'a> ToFwCall<'a> for GetPlansReq {
29    type ApiRequest = Self;
30
31    type ApiResponse = GetPlansRes;
32
33    fn get_call(self) -> FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
34        FwCall::new(
35            Cow::Owned(format!(
36                "/v3/payment-plans{}",
37                serde_qs::to_string(&self).unwrap()
38            )),
39            reqwest::Method::GET,
40            None,
41        )
42    }
43}