flutterwave_v3_models/transactions/
get_transactions.rs

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