fix(user): add onboarding_survey enum in dashboard metadata type (#4353)

This commit is contained in:
Riddhiagrawal001
2024-04-19 16:53:38 +05:30
committed by GitHub
parent e458e4907e
commit f6fccafb3d
7 changed files with 45 additions and 0 deletions

View File

@ -26,6 +26,7 @@ pub enum SetMetaDataRequest {
IsMultipleConfiguration, IsMultipleConfiguration,
#[serde(skip)] #[serde(skip)]
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey(OnboardingSurvey),
} }
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
@ -46,6 +47,20 @@ pub struct ProcessorConnected {
pub processor_name: String, pub processor_name: String,
} }
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct OnboardingSurvey {
pub designation: Option<String>,
pub about_business: Option<String>,
pub business_website: Option<String>,
pub hyperswitch_req: Option<String>,
pub major_markets: Option<Vec<String>>,
pub business_size: Option<String>,
pub required_features: Option<Vec<String>>,
pub required_processors: Option<Vec<String>>,
pub planned_live_date: Option<String>,
pub miscellaneous: Option<String>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct ConfiguredRouting { pub struct ConfiguredRouting {
pub routing_id: String, pub routing_id: String,
@ -113,6 +128,7 @@ pub enum GetMetaDataRequest {
SetupWoocomWebhook, SetupWoocomWebhook,
IsMultipleConfiguration, IsMultipleConfiguration,
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey,
} }
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
@ -150,4 +166,5 @@ pub enum GetMetaDataResponse {
SetupWoocomWebhook(bool), SetupWoocomWebhook(bool),
IsMultipleConfiguration(bool), IsMultipleConfiguration(bool),
IsChangePasswordRequired(bool), IsChangePasswordRequired(bool),
OnboardingSurvey(Option<OnboardingSurvey>),
} }

View File

@ -348,4 +348,5 @@ pub enum DashboardMetadata {
SetupWoocomWebhook, SetupWoocomWebhook,
IsMultipleConfiguration, IsMultipleConfiguration,
IsChangePasswordRequired, IsChangePasswordRequired,
OnboardingSurvey,
} }

View File

@ -112,6 +112,9 @@ fn parse_set_request(data_enum: api::SetMetaDataRequest) -> UserResult<types::Me
api::SetMetaDataRequest::IsChangePasswordRequired => { api::SetMetaDataRequest::IsChangePasswordRequired => {
Ok(types::MetaData::IsChangePasswordRequired(true)) Ok(types::MetaData::IsChangePasswordRequired(true))
} }
api::SetMetaDataRequest::OnboardingSurvey(req) => {
Ok(types::MetaData::OnboardingSurvey(req))
}
} }
} }
@ -139,6 +142,7 @@ fn parse_get_request(data_enum: api::GetMetaDataRequest) -> DBEnum {
api::GetMetaDataRequest::SetupWoocomWebhook => DBEnum::SetupWoocomWebhook, api::GetMetaDataRequest::SetupWoocomWebhook => DBEnum::SetupWoocomWebhook,
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,
} }
} }
@ -218,6 +222,10 @@ fn into_response(
DBEnum::IsChangePasswordRequired => Ok(api::GetMetaDataResponse::IsChangePasswordRequired( DBEnum::IsChangePasswordRequired => Ok(api::GetMetaDataResponse::IsChangePasswordRequired(
data.is_some(), data.is_some(),
)), )),
DBEnum::OnboardingSurvey => {
let resp = utils::deserialize_to_response(data)?;
Ok(api::GetMetaDataResponse::OnboardingSurvey(resp))
}
} }
} }
@ -548,6 +556,17 @@ async fn insert_metadata(
) )
.await .await
} }
types::MetaData::OnboardingSurvey(data) => {
utils::insert_merchant_scoped_metadata_to_db(
state,
user.user_id,
user.merchant_id,
user.org_id,
metadata_key,
data,
)
.await
}
} }
} }

View File

@ -26,6 +26,7 @@ pub enum MetaData {
SetupWoocomWebhook(bool), SetupWoocomWebhook(bool),
IsMultipleConfiguration(bool), IsMultipleConfiguration(bool),
IsChangePasswordRequired(bool), IsChangePasswordRequired(bool),
OnboardingSurvey(api::OnboardingSurvey),
} }
impl From<&MetaData> for DBEnum { impl From<&MetaData> for DBEnum {
@ -53,6 +54,7 @@ impl From<&MetaData> for DBEnum {
MetaData::SetupWoocomWebhook(_) => Self::SetupWoocomWebhook, MetaData::SetupWoocomWebhook(_) => Self::SetupWoocomWebhook,
MetaData::IsMultipleConfiguration(_) => Self::IsMultipleConfiguration, MetaData::IsMultipleConfiguration(_) => Self::IsMultipleConfiguration,
MetaData::IsChangePasswordRequired(_) => Self::IsChangePasswordRequired, MetaData::IsChangePasswordRequired(_) => Self::IsChangePasswordRequired,
MetaData::OnboardingSurvey(_) => Self::OnboardingSurvey,
} }
} }
} }

View File

@ -214,6 +214,7 @@ pub fn separate_metadata_type_based_on_scope(
| DBEnum::DownloadWoocom | DBEnum::DownloadWoocom
| DBEnum::ConfigureWoocom | DBEnum::ConfigureWoocom
| DBEnum::SetupWoocomWebhook | DBEnum::SetupWoocomWebhook
| DBEnum::OnboardingSurvey
| DBEnum::IsMultipleConfiguration => merchant_scoped.push(key), | DBEnum::IsMultipleConfiguration => 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 'onboarding_survey';