mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 05:17:02 +08:00
feat: add create retrieve and update api endpoints for organization resource (#5361)
This commit is contained in:
@ -2,7 +2,9 @@ use std::{collections::HashMap, sync::Arc};
|
||||
|
||||
use api_models::user as user_api;
|
||||
use common_enums::UserAuthType;
|
||||
use common_utils::{encryption::Encryption, errors::CustomResult, types::keymanager::Identifier};
|
||||
use common_utils::{
|
||||
encryption::Encryption, errors::CustomResult, id_type, types::keymanager::Identifier,
|
||||
};
|
||||
use diesel_models::{enums::UserStatus, user_role::UserRole};
|
||||
use error_stack::ResultExt;
|
||||
use masking::{ExposeInterface, Secret};
|
||||
@ -99,7 +101,7 @@ pub async fn generate_jwt_auth_token_with_custom_role_attributes(
|
||||
state: &SessionState,
|
||||
user: &UserFromStorage,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
role_id: String,
|
||||
) -> UserResult<Secret<String>> {
|
||||
let token = AuthToken::new_token(
|
||||
|
||||
@ -4,6 +4,7 @@ use actix_web::http::header::HeaderMap;
|
||||
use api_models::user::dashboard_metadata::{
|
||||
GetMetaDataRequest, GetMultipleMetaDataPayload, ProdIntent, SetMetaDataRequest,
|
||||
};
|
||||
use common_utils::id_type;
|
||||
use diesel_models::{
|
||||
enums::DashboardMetadata as DBEnum,
|
||||
user::dashboard_metadata::{DashboardMetadata, DashboardMetadataNew, DashboardMetadataUpdate},
|
||||
@ -20,7 +21,7 @@ pub async fn insert_merchant_scoped_metadata_to_db(
|
||||
state: &SessionState,
|
||||
user_id: String,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_key: DBEnum,
|
||||
metadata_value: impl serde::Serialize,
|
||||
) -> UserResult<DashboardMetadata> {
|
||||
@ -53,7 +54,7 @@ pub async fn insert_user_scoped_metadata_to_db(
|
||||
state: &SessionState,
|
||||
user_id: String,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_key: DBEnum,
|
||||
metadata_value: impl serde::Serialize,
|
||||
) -> UserResult<DashboardMetadata> {
|
||||
@ -86,7 +87,7 @@ pub async fn insert_user_scoped_metadata_to_db(
|
||||
pub async fn get_merchant_scoped_metadata_from_db(
|
||||
state: &SessionState,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_keys: Vec<DBEnum>,
|
||||
) -> UserResult<Vec<DashboardMetadata>> {
|
||||
state
|
||||
@ -100,7 +101,7 @@ pub async fn get_user_scoped_metadata_from_db(
|
||||
state: &SessionState,
|
||||
user_id: String,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_keys: Vec<DBEnum>,
|
||||
) -> UserResult<Vec<DashboardMetadata>> {
|
||||
match state
|
||||
@ -124,7 +125,7 @@ pub async fn update_merchant_scoped_metadata(
|
||||
state: &SessionState,
|
||||
user_id: String,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_key: DBEnum,
|
||||
metadata_value: impl serde::Serialize,
|
||||
) -> UserResult<DashboardMetadata> {
|
||||
@ -152,7 +153,7 @@ pub async fn update_user_scoped_metadata(
|
||||
state: &SessionState,
|
||||
user_id: String,
|
||||
merchant_id: String,
|
||||
org_id: String,
|
||||
org_id: id_type::OrganizationId,
|
||||
metadata_key: DBEnum,
|
||||
metadata_value: impl serde::Serialize,
|
||||
) -> UserResult<DashboardMetadata> {
|
||||
|
||||
@ -2,6 +2,7 @@ use std::collections::HashSet;
|
||||
|
||||
use api_models::user_role as user_role_api;
|
||||
use common_enums::PermissionGroup;
|
||||
use common_utils::id_type;
|
||||
use diesel_models::user_role::UserRole;
|
||||
use error_stack::{report, ResultExt};
|
||||
use router_env::logger;
|
||||
@ -77,7 +78,7 @@ pub async fn validate_role_name(
|
||||
state: &SessionState,
|
||||
role_name: &domain::RoleName,
|
||||
merchant_id: &str,
|
||||
org_id: &str,
|
||||
org_id: &id_type::OrganizationId,
|
||||
) -> UserResult<()> {
|
||||
let role_name_str = role_name.clone().get_role_name();
|
||||
|
||||
@ -109,7 +110,7 @@ pub async fn set_role_permissions_in_cache_by_user_role(
|
||||
state,
|
||||
user_role.role_id.as_str(),
|
||||
user_role.merchant_id.as_str(),
|
||||
user_role.org_id.as_str(),
|
||||
&user_role.org_id,
|
||||
)
|
||||
.await
|
||||
.map_err(|e| logger::error!("Error setting permissions in cache {:?}", e))
|
||||
@ -120,7 +121,7 @@ pub async fn set_role_permissions_in_cache_if_required(
|
||||
state: &SessionState,
|
||||
role_id: &str,
|
||||
merchant_id: &str,
|
||||
org_id: &str,
|
||||
org_id: &id_type::OrganizationId,
|
||||
) -> UserResult<()> {
|
||||
if roles::predefined_roles::PREDEFINED_ROLES.contains_key(role_id) {
|
||||
return Ok(());
|
||||
|
||||
Reference in New Issue
Block a user