mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	feat(user_role): Add APIs for user roles (#3013)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
		| @ -7,6 +7,7 @@ pub mod payouts; | ||||
| pub mod refund; | ||||
| pub mod routing; | ||||
| pub mod user; | ||||
| pub mod user_role; | ||||
|  | ||||
| use common_utils::{ | ||||
|     events::{ApiEventMetric, ApiEventsType}, | ||||
|  | ||||
| @ -5,6 +5,7 @@ use crate::user::{ | ||||
|         GetMetaDataRequest, GetMetaDataResponse, GetMultipleMetaDataPayload, SetMetaDataRequest, | ||||
|     }, | ||||
|     ChangePasswordRequest, ConnectAccountRequest, ConnectAccountResponse, | ||||
|     CreateInternalUserRequest, SwitchMerchantIdRequest, UserMerchantCreate, | ||||
| }; | ||||
|  | ||||
| impl ApiEventMetric for ConnectAccountResponse { | ||||
| @ -23,5 +24,8 @@ common_utils::impl_misc_api_event_type!( | ||||
|     GetMultipleMetaDataPayload, | ||||
|     GetMetaDataResponse, | ||||
|     GetMetaDataRequest, | ||||
|     SetMetaDataRequest | ||||
|     SetMetaDataRequest, | ||||
|     SwitchMerchantIdRequest, | ||||
|     CreateInternalUserRequest, | ||||
|     UserMerchantCreate | ||||
| ); | ||||
|  | ||||
							
								
								
									
										14
									
								
								crates/api_models/src/events/user_role.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								crates/api_models/src/events/user_role.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| use common_utils::events::{ApiEventMetric, ApiEventsType}; | ||||
|  | ||||
| use crate::user_role::{ | ||||
|     AuthorizationInfoResponse, GetRoleRequest, ListRolesResponse, RoleInfoResponse, | ||||
|     UpdateUserRoleRequest, | ||||
| }; | ||||
|  | ||||
| common_utils::impl_misc_api_event_type!( | ||||
|     ListRolesResponse, | ||||
|     RoleInfoResponse, | ||||
|     GetRoleRequest, | ||||
|     AuthorizationInfoResponse, | ||||
|     UpdateUserRoleRequest | ||||
| ); | ||||
| @ -26,6 +26,7 @@ pub mod refunds; | ||||
| pub mod routing; | ||||
| pub mod surcharge_decision_configs; | ||||
| pub mod user; | ||||
| pub mod user_role; | ||||
| pub mod verifications; | ||||
| pub mod verify_connector; | ||||
| pub mod webhooks; | ||||
|  | ||||
| @ -26,3 +26,20 @@ pub struct ChangePasswordRequest { | ||||
|     pub new_password: Secret<String>, | ||||
|     pub old_password: Secret<String>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Deserialize, serde::Serialize)] | ||||
| pub struct SwitchMerchantIdRequest { | ||||
|     pub merchant_id: String, | ||||
| } | ||||
|  | ||||
| #[derive(serde::Deserialize, Debug, serde::Serialize)] | ||||
| pub struct CreateInternalUserRequest { | ||||
|     pub name: Secret<String>, | ||||
|     pub email: pii::Email, | ||||
|     pub password: Secret<String>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Deserialize, serde::Serialize)] | ||||
| pub struct UserMerchantCreate { | ||||
|     pub company_name: String, | ||||
| } | ||||
|  | ||||
							
								
								
									
										82
									
								
								crates/api_models/src/user_role.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								crates/api_models/src/user_role.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,82 @@ | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub struct ListRolesResponse(pub Vec<RoleInfoResponse>); | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub struct RoleInfoResponse { | ||||
|     pub role_id: &'static str, | ||||
|     pub permissions: Vec<Permission>, | ||||
|     pub role_name: &'static str, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Deserialize, serde::Serialize)] | ||||
| pub struct GetRoleRequest { | ||||
|     pub role_id: String, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub enum Permission { | ||||
|     PaymentRead, | ||||
|     PaymentWrite, | ||||
|     RefundRead, | ||||
|     RefundWrite, | ||||
|     ApiKeyRead, | ||||
|     ApiKeyWrite, | ||||
|     MerchantAccountRead, | ||||
|     MerchantAccountWrite, | ||||
|     MerchantConnectorAccountRead, | ||||
|     MerchantConnectorAccountWrite, | ||||
|     ForexRead, | ||||
|     RoutingRead, | ||||
|     RoutingWrite, | ||||
|     DisputeRead, | ||||
|     DisputeWrite, | ||||
|     MandateRead, | ||||
|     MandateWrite, | ||||
|     FileRead, | ||||
|     FileWrite, | ||||
|     Analytics, | ||||
|     ThreeDsDecisionManagerWrite, | ||||
|     ThreeDsDecisionManagerRead, | ||||
|     SurchargeDecisionManagerWrite, | ||||
|     SurchargeDecisionManagerRead, | ||||
|     UsersRead, | ||||
|     UsersWrite, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub enum PermissionModule { | ||||
|     Payments, | ||||
|     Refunds, | ||||
|     MerchantAccount, | ||||
|     Forex, | ||||
|     Connectors, | ||||
|     Routing, | ||||
|     Analytics, | ||||
|     Mandates, | ||||
|     Disputes, | ||||
|     Files, | ||||
|     ThreeDsDecisionManager, | ||||
|     SurchargeDecisionManager, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub struct AuthorizationInfoResponse(pub Vec<ModuleInfo>); | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub struct ModuleInfo { | ||||
|     pub module: PermissionModule, | ||||
|     pub description: &'static str, | ||||
|     pub permissions: Vec<PermissionInfo>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Serialize)] | ||||
| pub struct PermissionInfo { | ||||
|     pub enum_name: Permission, | ||||
|     pub description: &'static str, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, serde::Deserialize, serde::Serialize)] | ||||
| pub struct UpdateUserRoleRequest { | ||||
|     pub user_id: String, | ||||
|     pub role_id: String, | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Mani Chandra
					Mani Chandra