flutterwave_v3_models/transactions/
query_trans_fees.rs1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use crate::{
4 common::payload::Payload,
5 fwcall::{FwCall, ToFwCall},
6};
7use std::borrow::Cow;
8
9#[derive(Debug, Serialize, Deserialize, Validate)]
10pub struct QueryTransFeesReq {
11 pub amount: i32,
12 pub currency: String,
13 pub payment_type: String,
14 pub card_first6digits: i32
15}
16
17#[derive(Debug, Serialize, Deserialize)]
18pub struct QueryTransFeesRes {
19 pub status: String,
20 pub message: String,
21 pub data: QueryTransFeesResData
22}
23
24#[derive(Debug, Serialize, Deserialize)]
25pub struct QueryTransFeesResData {
26 pub charge_amount: String,
27 pub fee: i32,
28 pub merchant_fee: i32,
29 pub flutterwave_fee: i32,
30 pub stamp_duty_fee: i32,
31 pub currency: String
32}
33
34impl<'a> ToFwCall<'a> for QueryTransFeesReq {
35 type ApiRequest = Self;
36
37 type ApiResponse = QueryTransFeesRes;
38
39 fn get_call(self) -> FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
40 FwCall::new(
41 Cow::Owned(format!("/v3/transactions/fees?{}", serde_qs::to_string(&self).unwrap())),
42 reqwest::Method::POST,
43 Some(Payload::Plain(self)),
44 )
45 }
46}