flutterwave_v3_models/transactions/
fetch_refunded_trans.rs

1use std::borrow::Cow;
2
3use serde::{Deserialize, Serialize};
4use validator::Validate;
5
6use crate::{
7    common::multi_res_meta::MultiResMeta,
8    fwcall::{FwCall, ToFwCall},
9};
10
11#[derive(Debug, Serialize, Deserialize, Validate)]
12pub struct FetchRefundedTransReq {
13    pub id: i32,
14}
15
16#[derive(Debug, Serialize, Deserialize, Validate)]
17pub struct FetchMultiRefundedTransReq {
18    pub from: Option<String>,
19    pub to: Option<String>,
20    pub status: Option<String>,
21    pub currency: Option<String>,
22    pub flw_ref: Option<String>,
23    pub id: Option<String>,
24}
25
26#[derive(Debug, Serialize, Deserialize, Validate)]
27pub struct FetchRefundedTransRes {
28    pub id: i32,
29    pub amount_refunded: i32,
30    pub status: String,
31    pub flw_ref: String,
32    pub comment: Option<String>,
33    pub settlement_id: String,
34    pub meta: Meta,
35    pub created_at: String,
36    pub account_id: i32,
37    pub transaction_id: i32,
38}
39
40#[derive(Debug, Serialize, Deserialize, Validate)]
41pub struct FetchMultiRefundedTransRes {
42    pub status: String,
43    pub message: String,
44    pub meta: MultiResMeta,
45    pub data: Vec<FetchRefundedTransRes>,
46}
47
48#[derive(Debug, Serialize, Deserialize, Validate)]
49pub struct Meta {
50    source: String,
51    uniquereference: String,
52    provider: String,
53}
54
55impl<'a> ToFwCall<'a> for FetchRefundedTransReq {
56    type ApiRequest = Self;
57
58    type ApiResponse = FetchRefundedTransRes;
59
60    fn get_call(self) -> crate::fwcall::FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
61        FwCall::new(
62            Cow::Owned(format!("/v3/refunds/{}", self.id)),
63            reqwest::Method::GET,
64            None,
65        )
66    }
67}
68
69impl<'a> ToFwCall<'a> for FetchMultiRefundedTransReq {
70    type ApiRequest = Self;
71
72    type ApiResponse = FetchMultiRefundedTransRes;
73
74    fn get_call(self) -> crate::fwcall::FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
75        FwCall::new(
76            Cow::Owned(format!(
77                "/v3/refunds?{}",
78                serde_qs::to_string(&self).unwrap()
79            )),
80            reqwest::Method::GET,
81            None,
82        )
83    }
84}