feat(dashboard_metadata): Add ReconStatus in dashboard_metadata (#7595)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Mani Chandra
2025-03-26 15:00:38 +05:30
committed by GitHub
parent 68aa4854b6
commit 7b275ec448
7 changed files with 49 additions and 1 deletions

View File

@ -27,6 +27,7 @@ pub enum SetMetaDataRequest {
#[serde(skip)] #[serde(skip)]
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey(OnboardingSurvey), OnboardingSurvey(OnboardingSurvey),
ReconStatus(ReconStatus),
} }
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
@ -104,6 +105,12 @@ pub struct ProdIntent {
pub is_completed: bool, pub is_completed: bool,
} }
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct ReconStatus {
pub is_order_data_set: bool,
pub is_processor_data_set: bool,
}
#[derive(Debug, serde::Deserialize, EnumString, serde::Serialize)] #[derive(Debug, serde::Deserialize, EnumString, serde::Serialize)]
pub enum GetMetaDataRequest { pub enum GetMetaDataRequest {
ProductionAgreement, ProductionAgreement,
@ -129,6 +136,7 @@ pub enum GetMetaDataRequest {
IsMultipleConfiguration, IsMultipleConfiguration,
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey, OnboardingSurvey,
ReconStatus,
} }
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
@ -167,4 +175,5 @@ pub enum GetMetaDataResponse {
IsMultipleConfiguration(bool), IsMultipleConfiguration(bool),
IsChangePasswordRequired(bool), IsChangePasswordRequired(bool),
OnboardingSurvey(Option<OnboardingSurvey>), OnboardingSurvey(Option<OnboardingSurvey>),
ReconStatus(Option<ReconStatus>),
} }

View File

@ -284,6 +284,7 @@ pub enum DashboardMetadata {
IsMultipleConfiguration, IsMultipleConfiguration,
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey, OnboardingSurvey,
ReconStatus,
} }
#[derive( #[derive(

View File

@ -122,6 +122,7 @@ fn parse_set_request(data_enum: api::SetMetaDataRequest) -> UserResult<types::Me
api::SetMetaDataRequest::OnboardingSurvey(req) => { api::SetMetaDataRequest::OnboardingSurvey(req) => {
Ok(types::MetaData::OnboardingSurvey(req)) Ok(types::MetaData::OnboardingSurvey(req))
} }
api::SetMetaDataRequest::ReconStatus(req) => Ok(types::MetaData::ReconStatus(req)),
} }
} }
@ -150,6 +151,7 @@ fn parse_get_request(data_enum: api::GetMetaDataRequest) -> DBEnum {
api::GetMetaDataRequest::IsMultipleConfiguration => DBEnum::IsMultipleConfiguration, api::GetMetaDataRequest::IsMultipleConfiguration => DBEnum::IsMultipleConfiguration,
api::GetMetaDataRequest::IsChangePasswordRequired => DBEnum::IsChangePasswordRequired, api::GetMetaDataRequest::IsChangePasswordRequired => DBEnum::IsChangePasswordRequired,
api::GetMetaDataRequest::OnboardingSurvey => DBEnum::OnboardingSurvey, api::GetMetaDataRequest::OnboardingSurvey => DBEnum::OnboardingSurvey,
api::GetMetaDataRequest::ReconStatus => DBEnum::ReconStatus,
} }
} }
@ -233,6 +235,10 @@ fn into_response(
let resp = utils::deserialize_to_response(data)?; let resp = utils::deserialize_to_response(data)?;
Ok(api::GetMetaDataResponse::OnboardingSurvey(resp)) Ok(api::GetMetaDataResponse::OnboardingSurvey(resp))
} }
DBEnum::ReconStatus => {
let resp = utils::deserialize_to_response(data)?;
Ok(api::GetMetaDataResponse::ReconStatus(resp))
}
} }
} }
@ -594,6 +600,30 @@ async fn insert_metadata(
) )
.await .await
} }
types::MetaData::ReconStatus(data) => {
let mut metadata = utils::insert_merchant_scoped_metadata_to_db(
state,
user.user_id.clone(),
user.merchant_id.clone(),
user.org_id.clone(),
metadata_key,
data.clone(),
)
.await;
if utils::is_update_required(&metadata) {
metadata = utils::update_merchant_scoped_metadata(
state,
user.user_id,
user.merchant_id,
user.org_id,
metadata_key,
data,
)
.await;
}
metadata
}
} }
} }

View File

@ -27,6 +27,7 @@ pub enum MetaData {
IsMultipleConfiguration(bool), IsMultipleConfiguration(bool),
IsChangePasswordRequired(bool), IsChangePasswordRequired(bool),
OnboardingSurvey(api::OnboardingSurvey), OnboardingSurvey(api::OnboardingSurvey),
ReconStatus(api::ReconStatus),
} }
impl From<&MetaData> for DBEnum { impl From<&MetaData> for DBEnum {
@ -55,6 +56,7 @@ impl From<&MetaData> for DBEnum {
MetaData::IsMultipleConfiguration(_) => Self::IsMultipleConfiguration, MetaData::IsMultipleConfiguration(_) => Self::IsMultipleConfiguration,
MetaData::IsChangePasswordRequired(_) => Self::IsChangePasswordRequired, MetaData::IsChangePasswordRequired(_) => Self::IsChangePasswordRequired,
MetaData::OnboardingSurvey(_) => Self::OnboardingSurvey, MetaData::OnboardingSurvey(_) => Self::OnboardingSurvey,
MetaData::ReconStatus(_) => Self::ReconStatus,
} }
} }
} }

View File

@ -217,7 +217,8 @@ pub fn separate_metadata_type_based_on_scope(
| DBEnum::ConfigureWoocom | DBEnum::ConfigureWoocom
| DBEnum::SetupWoocomWebhook | DBEnum::SetupWoocomWebhook
| DBEnum::OnboardingSurvey | DBEnum::OnboardingSurvey
| DBEnum::IsMultipleConfiguration => merchant_scoped.push(key), | DBEnum::IsMultipleConfiguration
| DBEnum::ReconStatus => merchant_scoped.push(key),
DBEnum::Feedback | DBEnum::ProdIntent | DBEnum::IsChangePasswordRequired => { DBEnum::Feedback | DBEnum::ProdIntent | DBEnum::IsChangePasswordRequired => {
user_scoped.push(key) user_scoped.push(key)
} }

View File

@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
SELECT 1;

View File

@ -0,0 +1,3 @@
-- Your SQL goes here
ALTER TYPE "DashboardMetadata"
ADD VALUE IF NOT EXISTS 'recon_status';