feat(users): Add new API get the user and role details of specific user (#3988)

This commit is contained in:
Mani Chandra
2024-03-07 11:53:24 +05:30
committed by GitHub
parent 3fc3874057
commit ba42fbaed0
7 changed files with 106 additions and 15 deletions

View File

@ -11,11 +11,11 @@ use crate::user::{
GetMetaDataRequest, GetMetaDataResponse, GetMultipleMetaDataPayload, SetMetaDataRequest,
},
AcceptInviteFromEmailRequest, AuthorizeResponse, ChangePasswordRequest, ConnectAccountRequest,
CreateInternalUserRequest, DashboardEntryResponse, ForgotPasswordRequest, GetUsersResponse,
InviteUserRequest, InviteUserResponse, ReInviteUserRequest, ResetPasswordRequest,
SendVerifyEmailRequest, SignInResponse, SignUpRequest, SignUpWithMerchantIdRequest,
SwitchMerchantIdRequest, UpdateUserAccountDetailsRequest, UserMerchantCreate,
VerifyEmailRequest,
CreateInternalUserRequest, DashboardEntryResponse, ForgotPasswordRequest,
GetUserDetailsRequest, GetUserDetailsResponse, InviteUserRequest, InviteUserResponse,
ListUsersResponse, ReInviteUserRequest, ResetPasswordRequest, SendVerifyEmailRequest,
SignInResponse, SignUpRequest, SignUpWithMerchantIdRequest, SwitchMerchantIdRequest,
UpdateUserAccountDetailsRequest, UserMerchantCreate, VerifyEmailRequest,
};
impl ApiEventMetric for DashboardEntryResponse {
@ -48,7 +48,7 @@ common_utils::impl_misc_api_event_type!(
SwitchMerchantIdRequest,
CreateInternalUserRequest,
UserMerchantCreate,
GetUsersResponse,
ListUsersResponse,
AuthorizeResponse,
ConnectAccountRequest,
ForgotPasswordRequest,
@ -60,7 +60,9 @@ common_utils::impl_misc_api_event_type!(
SendVerifyEmailRequest,
AcceptInviteFromEmailRequest,
SignInResponse,
UpdateUserAccountDetailsRequest
UpdateUserAccountDetailsRequest,
GetUserDetailsRequest,
GetUserDetailsResponse
);
#[cfg(feature = "dummy_connector")]

View File

@ -1,3 +1,4 @@
use common_enums::{PermissionGroup, RoleScope};
use common_utils::{crypto::OptionalEncryptableName, pii};
use masking::Secret;
@ -141,7 +142,7 @@ pub struct UserMerchantCreate {
}
#[derive(Debug, serde::Serialize)]
pub struct GetUsersResponse(pub Vec<UserDetails>);
pub struct ListUsersResponse(pub Vec<UserDetails>);
#[derive(Debug, serde::Serialize)]
pub struct UserDetails {
@ -154,6 +155,24 @@ pub struct UserDetails {
pub last_modified_at: time::PrimitiveDateTime,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct GetUserDetailsRequest {
pub email: pii::Email,
}
#[derive(Debug, serde::Serialize)]
pub struct GetUserDetailsResponse {
pub email: pii::Email,
pub name: Secret<String>,
pub role_id: String,
pub role_name: String,
pub status: UserStatus,
#[serde(with = "common_utils::custom_serde::iso8601")]
pub last_modified_at: time::PrimitiveDateTime,
pub groups: Vec<PermissionGroup>,
pub role_scope: RoleScope,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct VerifyEmailRequest {
pub token: Secret<String>,