dashboard/src/services/users/transformations.ts

65 lines
1.5 KiB
TypeScript
Raw Normal View History

2022-05-17 11:52:08 +02:00
import { AppRoles, User, UserRole } from './types';
2021-09-27 12:17:33 +02:00
const transformRoleById = (roleId: any): UserRole => {
switch (roleId) {
case 1:
return UserRole.Admin;
case 2:
return UserRole.User;
case 3:
return UserRole.NoAccess;
default:
return UserRole.NoAccess;
}
};
const transformRoleIdByRole = (role: UserRole | null): number | null => {
switch (role) {
case UserRole.Admin:
return 1;
case UserRole.User:
return 2;
case UserRole.NoAccess:
return 3;
default:
return null;
}
};
2022-05-17 11:52:08 +02:00
export const transformAppRoles = (data: any): AppRoles => {
const userRole = transformRoleById(data.role_id);
2021-09-27 12:17:33 +02:00
2022-05-17 11:52:08 +02:00
return {
name: data.name ?? '',
role: userRole,
2022-05-17 11:52:08 +02:00
};
};
2021-12-21 14:55:46 +00:00
2022-05-17 11:52:08 +02:00
export const transformRequestAppRoles = (data: AppRoles): any => {
const resolvedRequestRole = transformRoleIdByRole(data.role) ?? null;
2022-04-15 14:30:27 +02:00
2021-12-21 14:55:46 +00:00
return {
2022-05-17 11:52:08 +02:00
name: data.name ?? '',
role_id: resolvedRequestRole,
2021-12-21 14:55:46 +00:00
};
};
2021-09-27 12:17:33 +02:00
2022-05-17 11:52:08 +02:00
export const transformUser = (response: any): User => {
return {
id: response.id ?? '',
app_roles: response.traits.app_roles ? response.traits.app_roles.map(transformAppRoles) : [],
email: response.traits.email ?? '',
name: response.traits.name ?? '',
preferredUsername: response.preferredUsername ?? '',
status: response.state ?? '',
};
};
2021-12-21 14:55:46 +00:00
2022-05-17 11:52:08 +02:00
export const transformRequestUser = (data: Pick<User, 'app_roles' | 'name' | 'email'>) => {
2021-12-21 14:55:46 +00:00
return {
2022-05-17 11:52:08 +02:00
app_roles: data.app_roles.map(transformRequestAppRoles),
email: data.email ?? '',
name: data.name ?? '',
2021-12-21 14:55:46 +00:00
};
};