blob: 038bf5cdf3a35ffa71b0c46ccea26a37d2582921 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
export const UserServiceProvider = (function () {
let instance;
async function createInstance(user) {
switch (user.role) {
case 'STUDENT':
const studentService = await import('./student');
if (studentService) {
return new studentService.default(user);
}
break;
case 'PROFESSOR':
const professorService = await import('./professor');
if (professorService) {
return new professorService.default(user);
}
break;
default:
throw new Error('Invalid Role!');
}
}
return {
getInstance: async function (user) {
if (!instance) {
instance = await createInstance(user);
}
return instance;
},
};
})();
|