flutterwave_v3_models/transactions/
get_transactions.rs1use 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}