flutterwave_v3_models/preauthorization/
refund_preauth_charge.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use crate::{
4    common::{charge_res_data::ChargeResData, payload::Payload},
5    fwcall::{FwCall, ToFwCall},
6};
7use std::borrow::Cow;
8
9#[derive(Debug, Deserialize, Serialize, Validate)]
10pub struct RefundPreAuthChargeReq {
11    pub flw_ref: String,
12    pub body: RefundPreAuthChargeReqBody
13}
14
15#[derive(Debug, Deserialize, Serialize)]
16pub struct RefundPreAuthChargeReqBody {
17    pub amount: String
18}
19
20#[derive(Debug, Deserialize, Serialize)]
21pub struct RefundPreAuthChargeRes {
22    pub status: String,
23    pub message: String,
24    pub data: ChargeResData
25}
26
27impl<'a> ToFwCall<'a> for RefundPreAuthChargeReq {
28    type ApiRequest = Self;
29
30    type ApiResponse = RefundPreAuthChargeRes;
31
32    fn get_call(self) -> FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
33        FwCall::new(
34            Cow::Owned(format!("/v3/charges/{}/refund", self.flw_ref)),
35            reqwest::Method::POST,
36            Some(Payload::Plain(self)),
37        )
38    }
39}