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