feat(merchant_account): add is_recon_enabled field in merchant_account (#1713)

This commit is contained in:
anji-reddy-j
2023-07-18 19:31:35 +05:30
committed by GitHub
parent d52b564f09
commit 7549cd3aa6
11 changed files with 38 additions and 1 deletions

View File

@ -227,6 +227,9 @@ pub struct MerchantAccountResponse {
/// The organization id merchant is associated with
pub organization_id: Option<String>,
/// A boolean value to indicate if the merchant has recon service is enabled or not, by default value is false
pub is_recon_enabled: bool,
}
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]

View File

@ -36,6 +36,7 @@ pub struct MerchantAccount {
pub modified_at: time::PrimitiveDateTime,
pub frm_routing_algorithm: Option<serde_json::Value>,
pub organization_id: Option<String>,
pub is_recon_enabled: bool,
}
#[derive(Clone, Debug, Insertable, router_derive::DebugAsDisplay)]
@ -61,6 +62,7 @@ pub struct MerchantAccountNew {
pub modified_at: time::PrimitiveDateTime,
pub frm_routing_algorithm: Option<serde_json::Value>,
pub organization_id: Option<String>,
pub is_recon_enabled: bool,
}
#[derive(Clone, Debug, Default, AsChangeset, router_derive::DebugAsDisplay)]
@ -85,4 +87,5 @@ pub struct MerchantAccountUpdateInternal {
pub intent_fulfillment_time: Option<i64>,
pub frm_routing_algorithm: Option<serde_json::Value>,
pub organization_id: Option<String>,
pub is_recon_enabled: bool,
}

View File

@ -330,6 +330,7 @@ diesel::table! {
frm_routing_algorithm -> Nullable<Jsonb>,
#[max_length = 32]
organization_id -> Nullable<Varchar>,
is_recon_enabled -> Bool,
}
}

View File

@ -41,11 +41,15 @@ impl Default for super::settings::Secrets {
jwt_secret: "secret".into(),
#[cfg(not(feature = "kms"))]
admin_api_key: "test_admin".into(),
#[cfg(not(feature = "kms"))]
recon_admin_api_key: "recon_test_admin".into(),
master_enc_key: "".into(),
#[cfg(feature = "kms")]
kms_encrypted_jwt_secret: "".into(),
#[cfg(feature = "kms")]
kms_encrypted_admin_api_key: "".into(),
#[cfg(feature = "kms")]
kms_encrypted_recon_admin_api_key: "".into(),
}
}
}

View File

@ -317,11 +317,15 @@ pub struct Secrets {
pub jwt_secret: String,
#[cfg(not(feature = "kms"))]
pub admin_api_key: String,
#[cfg(not(feature = "kms"))]
pub recon_admin_api_key: String,
pub master_enc_key: String,
#[cfg(feature = "kms")]
pub kms_encrypted_jwt_secret: String,
#[cfg(feature = "kms")]
pub kms_encrypted_admin_api_key: String,
#[cfg(feature = "kms")]
pub kms_encrypted_recon_admin_api_key: String,
}
#[derive(Debug, Deserialize, Clone)]

View File

@ -173,6 +173,7 @@ pub async fn create_merchant_account(
intent_fulfillment_time: req.intent_fulfillment_time.map(i64::from),
id: None,
organization_id: req.organization_id,
is_recon_enabled: false,
})
}
.await

View File

@ -35,6 +35,7 @@ impl TryFrom<domain::MerchantAccount> for MerchantAccountResponse {
frm_routing_algorithm: item.frm_routing_algorithm,
intent_fulfillment_time: item.intent_fulfillment_time,
organization_id: item.organization_id,
is_recon_enabled: item.is_recon_enabled,
})
}
}

View File

@ -37,6 +37,7 @@ pub struct MerchantAccount {
pub modified_at: time::PrimitiveDateTime,
pub intent_fulfillment_time: Option<i64>,
pub organization_id: Option<String>,
pub is_recon_enabled: bool,
}
#[allow(clippy::large_enum_variant)]
@ -63,6 +64,9 @@ pub enum MerchantAccountUpdate {
StorageSchemeUpdate {
storage_scheme: enums::MerchantStorageScheme,
},
ReconUpdate {
is_recon_enabled: bool,
},
}
impl From<MerchantAccountUpdate> for MerchantAccountUpdateInternal {
@ -110,6 +114,10 @@ impl From<MerchantAccountUpdate> for MerchantAccountUpdateInternal {
modified_at: Some(date_time::now()),
..Default::default()
},
MerchantAccountUpdate::ReconUpdate { is_recon_enabled } => Self {
is_recon_enabled,
..Default::default()
},
}
}
}
@ -144,6 +152,7 @@ impl super::behaviour::Conversion for MerchantAccount {
intent_fulfillment_time: self.intent_fulfillment_time,
frm_routing_algorithm: self.frm_routing_algorithm,
organization_id: self.organization_id,
is_recon_enabled: self.is_recon_enabled,
})
}
@ -184,6 +193,7 @@ impl super::behaviour::Conversion for MerchantAccount {
modified_at: item.modified_at,
intent_fulfillment_time: item.intent_fulfillment_time,
organization_id: item.organization_id,
is_recon_enabled: item.is_recon_enabled,
})
}
.await
@ -215,6 +225,7 @@ impl super::behaviour::Conversion for MerchantAccount {
intent_fulfillment_time: self.intent_fulfillment_time,
frm_routing_algorithm: self.frm_routing_algorithm,
organization_id: self.organization_id,
is_recon_enabled: self.is_recon_enabled,
})
}
}

View File

@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
ALTER TABLE merchant_account DROP COLUMN is_recon_enabled;

View File

@ -0,0 +1,2 @@
-- Your SQL goes here
ALTER TABLE merchant_account ADD COLUMN "is_recon_enabled" BOOLEAN NOT NULL DEFAULT FALSE;

View File

@ -5014,7 +5014,8 @@
"merchant_id",
"enable_payment_response_hash",
"redirect_to_merchant_with_http_post",
"primary_business_details"
"primary_business_details",
"is_recon_enabled"
],
"properties": {
"merchant_id": {
@ -5135,6 +5136,10 @@
"type": "string",
"description": "The organization id merchant is associated with",
"nullable": true
},
"is_recon_enabled": {
"type": "boolean",
"description": "A boolean value to indicate if the merchant has recon service is enabled or not, by default value is false"
}
}
},