mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 01:57:45 +08:00 
			
		
		
		
	refactor(users): rename user_roles and dashboard_metadata columns (#3135)
				
					
				
			Co-authored-by: Apoorv Dixit <apoorv.dixit@juspay.in>
This commit is contained in:
		| @ -4,7 +4,8 @@ pub mod diesel_exports { | |||||||
|         DbAttemptStatus as AttemptStatus, DbAuthenticationType as AuthenticationType, |         DbAttemptStatus as AttemptStatus, DbAuthenticationType as AuthenticationType, | ||||||
|         DbCaptureMethod as CaptureMethod, DbCaptureStatus as CaptureStatus, |         DbCaptureMethod as CaptureMethod, DbCaptureStatus as CaptureStatus, | ||||||
|         DbConnectorStatus as ConnectorStatus, DbConnectorType as ConnectorType, |         DbConnectorStatus as ConnectorStatus, DbConnectorType as ConnectorType, | ||||||
|         DbCountryAlpha2 as CountryAlpha2, DbCurrency as Currency, DbDisputeStage as DisputeStage, |         DbCountryAlpha2 as CountryAlpha2, DbCurrency as Currency, | ||||||
|  |         DbDashboardMetadata as DashboardMetadata, DbDisputeStage as DisputeStage, | ||||||
|         DbDisputeStatus as DisputeStatus, DbEventClass as EventClass, |         DbDisputeStatus as DisputeStatus, DbEventClass as EventClass, | ||||||
|         DbEventObjectType as EventObjectType, DbEventType as EventType, |         DbEventObjectType as EventObjectType, DbEventType as EventType, | ||||||
|         DbFraudCheckStatus as FraudCheckStatus, DbFraudCheckType as FraudCheckType, |         DbFraudCheckStatus as FraudCheckStatus, DbFraudCheckType as FraudCheckType, | ||||||
| @ -16,7 +17,7 @@ pub mod diesel_exports { | |||||||
|         DbProcessTrackerStatus as ProcessTrackerStatus, DbReconStatus as ReconStatus, |         DbProcessTrackerStatus as ProcessTrackerStatus, DbReconStatus as ReconStatus, | ||||||
|         DbRefundStatus as RefundStatus, DbRefundType as RefundType, |         DbRefundStatus as RefundStatus, DbRefundType as RefundType, | ||||||
|         DbRequestIncrementalAuthorization as RequestIncrementalAuthorization, |         DbRequestIncrementalAuthorization as RequestIncrementalAuthorization, | ||||||
|         DbRoutingAlgorithmKind as RoutingAlgorithmKind, |         DbRoutingAlgorithmKind as RoutingAlgorithmKind, DbUserStatus as UserStatus, | ||||||
|     }; |     }; | ||||||
| } | } | ||||||
| pub use common_enums::*; | pub use common_enums::*; | ||||||
| @ -418,7 +419,7 @@ pub enum FraudCheckLastStep { | |||||||
|     strum::EnumString, |     strum::EnumString, | ||||||
|     frunk::LabelledGeneric, |     frunk::LabelledGeneric, | ||||||
| )] | )] | ||||||
| #[diesel_enum(storage_type = "text")] | #[diesel_enum(storage_type = "db_enum")] | ||||||
| #[serde(rename_all = "snake_case")] | #[serde(rename_all = "snake_case")] | ||||||
| #[strum(serialize_all = "snake_case")] | #[strum(serialize_all = "snake_case")] | ||||||
| pub enum UserStatus { | pub enum UserStatus { | ||||||
| @ -439,7 +440,7 @@ pub enum UserStatus { | |||||||
|     strum::EnumString, |     strum::EnumString, | ||||||
|     frunk::LabelledGeneric, |     frunk::LabelledGeneric, | ||||||
| )] | )] | ||||||
| #[router_derive::diesel_enum(storage_type = "text")] | #[router_derive::diesel_enum(storage_type = "db_enum")] | ||||||
| #[serde(rename_all = "snake_case")] | #[serde(rename_all = "snake_case")] | ||||||
| #[strum(serialize_all = "snake_case")] | #[strum(serialize_all = "snake_case")] | ||||||
| pub enum DashboardMetadata { | pub enum DashboardMetadata { | ||||||
|  | |||||||
| @ -195,8 +195,7 @@ diesel::table! { | |||||||
|         merchant_id -> Varchar, |         merchant_id -> Varchar, | ||||||
|         #[max_length = 64] |         #[max_length = 64] | ||||||
|         org_id -> Varchar, |         org_id -> Varchar, | ||||||
|         #[max_length = 64] |         data_key -> DashboardMetadata, | ||||||
|         data_key -> Varchar, |  | ||||||
|         data_value -> Json, |         data_value -> Json, | ||||||
|         #[max_length = 64] |         #[max_length = 64] | ||||||
|         created_by -> Varchar, |         created_by -> Varchar, | ||||||
| @ -978,14 +977,13 @@ diesel::table! { | |||||||
|         role_id -> Varchar, |         role_id -> Varchar, | ||||||
|         #[max_length = 64] |         #[max_length = 64] | ||||||
|         org_id -> Varchar, |         org_id -> Varchar, | ||||||
|         #[max_length = 64] |         status -> UserStatus, | ||||||
|         status -> Varchar, |  | ||||||
|         #[max_length = 64] |         #[max_length = 64] | ||||||
|         created_by -> Varchar, |         created_by -> Varchar, | ||||||
|         #[max_length = 64] |         #[max_length = 64] | ||||||
|         last_modified_by -> Varchar, |         last_modified_by -> Varchar, | ||||||
|         created_at -> Timestamp, |         created_at -> Timestamp, | ||||||
|         last_modified_at -> Timestamp, |         last_modified -> Timestamp, | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ pub struct UserRole { | |||||||
|     pub created_by: String, |     pub created_by: String, | ||||||
|     pub last_modified_by: String, |     pub last_modified_by: String, | ||||||
|     pub created_at: PrimitiveDateTime, |     pub created_at: PrimitiveDateTime, | ||||||
|     pub last_modified_at: PrimitiveDateTime, |     pub last_modified: PrimitiveDateTime, | ||||||
| } | } | ||||||
|  |  | ||||||
| #[derive(router_derive::Setter, Clone, Debug, Insertable, router_derive::DebugAsDisplay)] | #[derive(router_derive::Setter, Clone, Debug, Insertable, router_derive::DebugAsDisplay)] | ||||||
| @ -29,7 +29,7 @@ pub struct UserRoleNew { | |||||||
|     pub created_by: String, |     pub created_by: String, | ||||||
|     pub last_modified_by: String, |     pub last_modified_by: String, | ||||||
|     pub created_at: PrimitiveDateTime, |     pub created_at: PrimitiveDateTime, | ||||||
|     pub last_modified_at: PrimitiveDateTime, |     pub last_modified: PrimitiveDateTime, | ||||||
| } | } | ||||||
|  |  | ||||||
| #[derive(Clone, Debug, AsChangeset, router_derive::DebugAsDisplay)] | #[derive(Clone, Debug, AsChangeset, router_derive::DebugAsDisplay)] | ||||||
| @ -38,7 +38,7 @@ pub struct UserRoleUpdateInternal { | |||||||
|     role_id: Option<String>, |     role_id: Option<String>, | ||||||
|     status: Option<enums::UserStatus>, |     status: Option<enums::UserStatus>, | ||||||
|     last_modified_by: Option<String>, |     last_modified_by: Option<String>, | ||||||
|     last_modified_at: PrimitiveDateTime, |     last_modified: PrimitiveDateTime, | ||||||
| } | } | ||||||
|  |  | ||||||
| pub enum UserRoleUpdate { | pub enum UserRoleUpdate { | ||||||
| @ -54,7 +54,7 @@ pub enum UserRoleUpdate { | |||||||
|  |  | ||||||
| impl From<UserRoleUpdate> for UserRoleUpdateInternal { | impl From<UserRoleUpdate> for UserRoleUpdateInternal { | ||||||
|     fn from(value: UserRoleUpdate) -> Self { |     fn from(value: UserRoleUpdate) -> Self { | ||||||
|         let last_modified_at = common_utils::date_time::now(); |         let last_modified = common_utils::date_time::now(); | ||||||
|         match value { |         match value { | ||||||
|             UserRoleUpdate::UpdateRole { |             UserRoleUpdate::UpdateRole { | ||||||
|                 role_id, |                 role_id, | ||||||
| @ -63,14 +63,14 @@ impl From<UserRoleUpdate> for UserRoleUpdateInternal { | |||||||
|                 role_id: Some(role_id), |                 role_id: Some(role_id), | ||||||
|                 last_modified_by: Some(modified_by), |                 last_modified_by: Some(modified_by), | ||||||
|                 status: None, |                 status: None, | ||||||
|                 last_modified_at, |                 last_modified, | ||||||
|             }, |             }, | ||||||
|             UserRoleUpdate::UpdateStatus { |             UserRoleUpdate::UpdateStatus { | ||||||
|                 status, |                 status, | ||||||
|                 modified_by, |                 modified_by, | ||||||
|             } => Self { |             } => Self { | ||||||
|                 status: Some(status), |                 status: Some(status), | ||||||
|                 last_modified_at, |                 last_modified, | ||||||
|                 last_modified_by: Some(modified_by), |                 last_modified_by: Some(modified_by), | ||||||
|                 role_id: None, |                 role_id: None, | ||||||
|             }, |             }, | ||||||
|  | |||||||
| @ -381,7 +381,7 @@ pub async fn invite_user( | |||||||
|                 created_by: user_from_token.user_id.clone(), |                 created_by: user_from_token.user_id.clone(), | ||||||
|                 last_modified_by: user_from_token.user_id, |                 last_modified_by: user_from_token.user_id, | ||||||
|                 created_at: now, |                 created_at: now, | ||||||
|                 last_modified_at: now, |                 last_modified: now, | ||||||
|             }) |             }) | ||||||
|             .await |             .await | ||||||
|             .map_err(|e| { |             .map_err(|e| { | ||||||
|  | |||||||
| @ -123,7 +123,7 @@ impl UserRoleInterface for MockDb { | |||||||
|             status: user_role.status, |             status: user_role.status, | ||||||
|             created_by: user_role.created_by, |             created_by: user_role.created_by, | ||||||
|             created_at: user_role.created_at, |             created_at: user_role.created_at, | ||||||
|             last_modified_at: user_role.last_modified_at, |             last_modified: user_role.last_modified, | ||||||
|             last_modified_by: user_role.last_modified_by, |             last_modified_by: user_role.last_modified_by, | ||||||
|             org_id: user_role.org_id, |             org_id: user_role.org_id, | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -140,7 +140,7 @@ pub async fn api_key_update( | |||||||
|     let (merchant_id, key_id) = path.into_inner(); |     let (merchant_id, key_id) = path.into_inner(); | ||||||
|     let mut payload = json_payload.into_inner(); |     let mut payload = json_payload.into_inner(); | ||||||
|     payload.key_id = key_id; |     payload.key_id = key_id; | ||||||
|     payload.merchant_id = merchant_id; |     payload.merchant_id = merchant_id.clone(); | ||||||
|  |  | ||||||
|     api::server_wrap( |     api::server_wrap( | ||||||
|         flow, |         flow, | ||||||
| @ -148,7 +148,14 @@ pub async fn api_key_update( | |||||||
|         &req, |         &req, | ||||||
|         payload, |         payload, | ||||||
|         |state, _, payload| api_keys::update_api_key(state, payload), |         |state, _, payload| api_keys::update_api_key(state, payload), | ||||||
|  |         auth::auth_type( | ||||||
|             &auth::AdminApiAuth, |             &auth::AdminApiAuth, | ||||||
|  |             &auth::JWTAuthMerchantFromRoute { | ||||||
|  |                 merchant_id, | ||||||
|  |                 required_permission: Permission::ApiKeyWrite, | ||||||
|  |             }, | ||||||
|  |             req.headers(), | ||||||
|  |         ), | ||||||
|         api_locking::LockAction::NotApplicable, |         api_locking::LockAction::NotApplicable, | ||||||
|     ) |     ) | ||||||
|     .await |     .await | ||||||
|  | |||||||
| @ -556,7 +556,7 @@ impl NewUser { | |||||||
|                 user_id, |                 user_id, | ||||||
|                 role_id, |                 role_id, | ||||||
|                 created_at: now, |                 created_at: now, | ||||||
|                 last_modified_at: now, |                 last_modified: now, | ||||||
|                 org_id: self |                 org_id: self | ||||||
|                     .get_new_merchant() |                     .get_new_merchant() | ||||||
|                     .get_new_organization() |                     .get_new_organization() | ||||||
| @ -829,7 +829,7 @@ impl TryFrom<UserAndRoleJoined> for user_api::UserDetails { | |||||||
|             role_id, |             role_id, | ||||||
|             status, |             status, | ||||||
|             role_name, |             role_name, | ||||||
|             last_modified_at: user_and_role.1.last_modified_at, |             last_modified_at: user_and_role.0.last_modified_at, | ||||||
|         }) |         }) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,4 @@ | |||||||
|  | -- This file should undo anything in `up.sql` | ||||||
|  | ALTER TABLE user_roles RENAME COLUMN last_modified TO last_modified_at; | ||||||
|  | ALTER TABLE user_roles ALTER COLUMN status TYPE VARCHAR(64) USING (status::text); | ||||||
|  | DROP TYPE IF EXISTS "UserStatus"; | ||||||
| @ -0,0 +1,4 @@ | |||||||
|  | -- Your SQL goes here | ||||||
|  | ALTER TABLE user_roles RENAME COLUMN last_modified_at TO last_modified; | ||||||
|  | CREATE TYPE "UserStatus" AS ENUM ('active', 'invitation_sent'); | ||||||
|  | ALTER TABLE user_roles ALTER COLUMN status TYPE "UserStatus" USING (status::"UserStatus"); | ||||||
| @ -0,0 +1,3 @@ | |||||||
|  | -- This file should undo anything in `up.sql` | ||||||
|  | ALTER TABLE dashboard_metadata ALTER COLUMN data_key TYPE VARCHAR(64); | ||||||
|  | DROP TYPE IF EXISTS "DashboardMetadata"; | ||||||
| @ -0,0 +1,25 @@ | |||||||
|  | -- Your SQL goes here | ||||||
|  | CREATE TYPE "DashboardMetadata" AS ENUM ( | ||||||
|  |     'production_agreement', | ||||||
|  |     'setup_processor', | ||||||
|  |     'configure_endpoint', | ||||||
|  |     'setup_complete', | ||||||
|  |     'first_processor_connected', | ||||||
|  |     'second_processor_connected', | ||||||
|  |     'configured_routing', | ||||||
|  |     'test_payment', | ||||||
|  |     'integration_method', | ||||||
|  |     'stripe_connected', | ||||||
|  |     'paypal_connected', | ||||||
|  |     'sp_routing_configured', | ||||||
|  |     'sp_test_payment', | ||||||
|  |     'download_woocom', | ||||||
|  |     'configure_woocom', | ||||||
|  |     'setup_woocom_webhook', | ||||||
|  |     'is_multiple_configuration', | ||||||
|  |     'configuration_type', | ||||||
|  |     'feedback', | ||||||
|  |     'prodintent' | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | ALTER TABLE dashboard_metadata ALTER COLUMN data_key TYPE "DashboardMetadata" USING (data_key::"DashboardMetadata"); | ||||||
		Reference in New Issue
	
	Block a user
	 Mani Chandra
					Mani Chandra