feat: load user courses when user is student

This commit is contained in:
Sergey Yarkov 2021-09-12 16:34:44 +03:00
parent bb81518fc3
commit f6064a858f

View File

@ -11,6 +11,8 @@ import ContactRepository from 'App/Repositories/ContactRepository';
import UserRepository from 'App/Repositories/UserRepository'; import UserRepository from 'App/Repositories/UserRepository';
import UpdateContactsValidator from 'App/Validators/Contacts/UpdateContactsValidator'; import UpdateContactsValidator from 'App/Validators/Contacts/UpdateContactsValidator';
import CodeErrorEnum from 'App/Datatypes/Enums/CodeErrorEnum'; import CodeErrorEnum from 'App/Datatypes/Enums/CodeErrorEnum';
import RoleHelper from 'App/Helpers/RoleHelper';
import RoleEnum from 'App/Datatypes/Enums/RoleEnum';
@inject() @inject()
export default class MeService { export default class MeService {
@ -35,17 +37,21 @@ export default class MeService {
const user = await auth.use(this.authGuard).authenticate(); const user = await auth.use(this.authGuard).authenticate();
await user.load(loader => { await user.load(loader => {
loader loader.load('roles').load('contacts');
.load('roles')
.load('contacts')
.load('courses', q => {
q.preload('category');
q.withCount('students');
q.withCount('likes');
q.withCount('lessons');
});
}); });
/**
* 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 { return {
success: true, success: true,
status: HttpStatusEnum.OK, status: HttpStatusEnum.OK,