flutterwave_v3_models/preauthorization/
capture_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
10#[derive(Debug, Deserialize, Serialize, Validate)]
11pub struct CapturePreAuthChargeReq {
12    pub flw_ref: String,
13    pub body: CapturePreAuthChargeReqBody
14}
15
16#[derive(Debug, Deserialize, Serialize)]
17pub struct CapturePreAuthChargeReqBody {
18    pub amount: String
19}
20
21#[derive(Debug, Deserialize, Serialize)]
22pub struct CapturePreAuthChargeRes {
23    pub status: String,
24    pub message: String,
25    pub data: ChargeResData
26}
27
28impl<'a> ToFwCall<'a> for CapturePreAuthChargeReq {
29    type ApiRequest = Self;
30
31    type ApiResponse = CapturePreAuthChargeRes;
32
33    fn get_call(self) -> FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
34        FwCall::new(
35            Cow::Owned(format!("/v3/charges/{}/capture", self.flw_ref)),
36            reqwest::Method::POST,
37            Some(Payload::Plain(self)),
38        )
39    }
40}
41