mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
feat(router): add refunds manual-update api (#5094)
This commit is contained in:
committed by
GitHub
parent
618ec41aff
commit
9bc780151c
@ -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)
|
||||
|
||||
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user