chore: Allow to update refund reason (#372)

This commit is contained in:
Kartikeya Hegde
2023-01-14 22:57:36 +05:30
committed by GitHub
parent 4e00b92dc1
commit 50f16d270a
4 changed files with 12 additions and 3 deletions

View File

@ -48,6 +48,10 @@ pub struct RefundRequest {
#[derive(Default, Debug, ToSchema, Clone, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct RefundUpdateRequest {
/// An arbitrary string attached to the object. Often useful for displaying to users and your customer support executive
#[schema(max_length = 255, example = "Customer returned the product")]
pub reason: Option<String>,
/// You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
#[schema(value_type = Option<Object>, example = r#"{ "city": "NY", "unit": "245" }"#)]
pub metadata: Option<serde_json::Value>,

View File

@ -49,6 +49,7 @@ impl From<StripeUpdateRefundRequest> for refunds::RefundUpdateRequest {
fn from(req: StripeUpdateRefundRequest) -> Self {
Self {
metadata: req.metadata,
reason: None,
}
}
}

View File

@ -328,8 +328,9 @@ pub async fn refund_update_core(
let response = db
.update_refund(
refund,
storage::RefundUpdate::MetadataUpdate {
storage::RefundUpdate::MetadataAndReasonUpdate {
metadata: req.metadata,
reason: req.reason,
},
merchant_account.storage_scheme,
)

View File

@ -81,8 +81,9 @@ pub enum RefundUpdate {
refund_error_message: Option<String>,
refund_arn: String,
},
MetadataUpdate {
MetadataAndReasonUpdate {
metadata: Option<serde_json::Value>,
reason: Option<String>,
},
StatusUpdate {
connector_refund_id: Option<String>,
@ -104,6 +105,7 @@ pub struct RefundUpdateInternal {
refund_error_message: Option<String>,
refund_arn: Option<String>,
metadata: Option<serde_json::Value>,
refund_reason: Option<String>,
}
impl From<RefundUpdate> for RefundUpdateInternal {
@ -123,8 +125,9 @@ impl From<RefundUpdate> for RefundUpdateInternal {
refund_arn: Some(refund_arn),
..Default::default()
},
RefundUpdate::MetadataUpdate { metadata } => Self {
RefundUpdate::MetadataAndReasonUpdate { metadata, reason } => Self {
metadata,
refund_reason: reason,
..Default::default()
},
RefundUpdate::StatusUpdate {