feat(router): add refunds manual-update api (#5094)

This commit is contained in:
Sai Harsha Vardhan
2024-07-02 18:40:23 +05:30
committed by GitHub
parent 618ec41aff
commit 9bc780151c
8 changed files with 142 additions and 4 deletions

View File

@ -1,8 +1,9 @@
use common_utils::events::{ApiEventMetric, ApiEventsType};
use crate::refunds::{
RefundListFilters, RefundListMetaData, RefundListRequest, RefundListResponse, RefundRequest,
RefundResponse, RefundUpdateRequest, RefundsRetrieveRequest,
RefundListFilters, RefundListMetaData, RefundListRequest, RefundListResponse,
RefundManualUpdateRequest, RefundRequest, RefundResponse, RefundUpdateRequest,
RefundsRetrieveRequest,
};
impl ApiEventMetric for RefundRequest {
@ -44,6 +45,15 @@ impl ApiEventMetric for RefundUpdateRequest {
}
}
impl ApiEventMetric for RefundManualUpdateRequest {
fn get_api_event_type(&self) -> Option<ApiEventsType> {
Some(ApiEventsType::Refund {
payment_id: None,
refund_id: self.refund_id.clone(),
})
}
}
impl ApiEventMetric for RefundListRequest {
fn get_api_event_type(&self) -> Option<ApiEventsType> {
Some(ApiEventsType::ResourceListAPI)

View File

@ -97,6 +97,21 @@ pub struct RefundUpdateRequest {
pub metadata: Option<pii::SecretSerdeValue>,
}
#[derive(Default, Debug, ToSchema, Clone, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct RefundManualUpdateRequest {
#[serde(skip)]
pub refund_id: String,
/// Merchant ID
pub merchant_id: String,
/// The status for refund
pub status: Option<RefundStatus>,
/// The code for the error
pub error_code: Option<String>,
/// The error message
pub error_message: Option<String>,
}
/// To indicate whether to refund needs to be instant or scheduled
#[derive(
Default, Debug, Clone, Copy, ToSchema, Deserialize, Serialize, Eq, PartialEq, strum::Display,
@ -244,3 +259,14 @@ impl From<enums::RefundStatus> for RefundStatus {
}
}
}
impl From<RefundStatus> for enums::RefundStatus {
fn from(status: RefundStatus) -> Self {
match status {
RefundStatus::Failed => Self::Failure,
RefundStatus::Review => Self::ManualReview,
RefundStatus::Pending => Self::Pending,
RefundStatus::Succeeded => Self::Success,
}
}
}