From f6064a858f8293d40eeec1b263b78cf58d51783a Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Sun, 12 Sep 2021 16:34:44 +0300 Subject: [PATCH] feat: load user courses when user is student --- app/Services/MeService.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/Services/MeService.ts b/app/Services/MeService.ts index ee0a215..1087db6 100644 --- a/app/Services/MeService.ts +++ b/app/Services/MeService.ts @@ -11,6 +11,8 @@ import ContactRepository from 'App/Repositories/ContactRepository'; import UserRepository from 'App/Repositories/UserRepository'; import UpdateContactsValidator from 'App/Validators/Contacts/UpdateContactsValidator'; import CodeErrorEnum from 'App/Datatypes/Enums/CodeErrorEnum'; +import RoleHelper from 'App/Helpers/RoleHelper'; +import RoleEnum from 'App/Datatypes/Enums/RoleEnum'; @inject() export default class MeService { @@ -35,17 +37,21 @@ export default class MeService { const user = await auth.use(this.authGuard).authenticate(); await user.load(loader => { - loader - .load('roles') - .load('contacts') - .load('courses', q => { - q.preload('category'); - q.withCount('students'); - q.withCount('likes'); - q.withCount('lessons'); - }); + loader.load('roles').load('contacts'); }); + /** + * Load available courses for STUDENT role + */ + if (RoleHelper.userHasRoles(user.roles, [RoleEnum.STUDENT])) { + await user.load('courses', q => { + q.preload('category'); + q.withCount('students'); + q.withCount('likes'); + q.withCount('lessons'); + }); + } + return { success: true, status: HttpStatusEnum.OK,