61 lines
1.4 KiB
TypeScript
61 lines
1.4 KiB
TypeScript
export type TPermissionItem = {
|
|||
|
|
id: string;
|
||
|
|
name: string;
|
||
|
|
created_at: string;
|
||
|
|
updated_at: string;
|
||
|
|
};
|
||
|
|
|
||
|
|
type TRoleItem = {
|
||
|
|
id: string;
|
||
|
|
name: string;
|
||
|
|
created_at: string;
|
||
|
|
updated_at: string;
|
||
|
|
permissions: TPermissionItem[];
|
||
|
|
};
|
||
|
|
|
||
|
|
type TUserItem = {
|
||
|
|
id: string;
|
||
|
|
avatar: string;
|
||
|
|
birthdate: string;
|
||
|
|
email: string;
|
||
|
|
fullname: string;
|
||
|
|
gender: string;
|
||
|
|
identity_number: string;
|
||
|
|
is_active: boolean;
|
||
|
|
is_profile_completed: boolean;
|
||
|
|
phone_number: string;
|
||
|
|
referral_code: string;
|
||
|
|
referred_by: string;
|
||
|
|
religion: string;
|
||
|
|
student_type: string;
|
||
|
|
role: TRoleItem;
|
||
|
|
};
|
||
|
|
|
||
|
|
export const SessionUser = {
|
||
|
|
set: (val: TUserItem) => localStorage.setItem('users', JSON.stringify(val)),
|
||
|
|
get: (): TUserItem | undefined => {
|
||
|
|
const users = localStorage.getItem('users');
|
||
|
|
return users ? JSON.parse(users) : undefined;
|
||
|
|
},
|
||
|
|
remove: () => localStorage.removeItem('users'),
|
||
|
|
};
|
||
|
|
|
||
|
|
export const SessionToken = {
|
||
|
|
set: (val: { access_token: string; refresh_token: string }) => {
|
||
|
|
localStorage.setItem('access_token', val.access_token);
|
||
|
|
localStorage.setItem('refresh_token', val.refresh_token);
|
||
|
|
},
|
||
|
|
get: ():
|
||
|
|
| { access_token?: string | null; refresh_token?: string | null }
|
||
|
|
| undefined => {
|
||
|
|
return {
|
||
|
|
access_token: localStorage.getItem('access_token'),
|
||
|
|
refresh_token: localStorage.getItem('refresh_token'),
|
||
|
|
};
|
||
|
|
},
|
||
|
|
remove: () => {
|
||
|
|
localStorage.removeItem('access_token');
|
||
|
|
localStorage.removeItem('refresh_token');
|
||
|
|
},
|
||
|
|
};
|