mirror of
https://github.com/sergeyyarkov/educt-server.git
synced 2026-10-11 10:19:20 +03:00
fix: load category and teacher data after upd course
This commit is contained in:
parent
077f1f91a6
commit
71a99fe556
@ -24,12 +24,7 @@
|
||||
"Database": "database",
|
||||
"Contracts": "contracts"
|
||||
},
|
||||
"preloads": [
|
||||
"./routes/index",
|
||||
"./start/kernel",
|
||||
"./start/event",
|
||||
"./start/bouncer"
|
||||
],
|
||||
"preloads": ["./routes/index", "./start/kernel", "./start/event", "./start/bouncer"],
|
||||
"providers": [
|
||||
"./providers/AppProvider",
|
||||
"./providers/CloudinaryProvider",
|
||||
@ -42,9 +37,7 @@
|
||||
"@adonisjs/attachment-lite",
|
||||
"@adonisjs/bouncer"
|
||||
],
|
||||
"aceProviders": [
|
||||
"@adonisjs/repl"
|
||||
],
|
||||
"aceProviders": ["@adonisjs/repl"],
|
||||
"metaFiles": [
|
||||
{
|
||||
"pattern": "resources/views/**/*.edge",
|
||||
|
||||
@ -79,7 +79,6 @@ export default class CourseRepository {
|
||||
.preload('lessons')
|
||||
.preload('students')
|
||||
.where('id', id)
|
||||
.where('status', CourseStatusEnum.PUBLISHED)
|
||||
.first();
|
||||
|
||||
return course;
|
||||
@ -241,7 +240,12 @@ export default class CourseRepository {
|
||||
.first();
|
||||
|
||||
if (course) {
|
||||
await course.merge(data).save();
|
||||
course.merge(data);
|
||||
course.load('category');
|
||||
course.load('teacher');
|
||||
|
||||
await course.save();
|
||||
|
||||
return course;
|
||||
}
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ export default class UpdateCourseValidator {
|
||||
public schema = schema.create({
|
||||
title: schema.string.optional(),
|
||||
description: schema.string.optional(),
|
||||
teacher_id: schema.string.optional({}, [rules.exists({ table: 'users', column: 'id' })]),
|
||||
category_id: schema.string.optional({}, [rules.exists({ table: 'categories', column: 'id' })]),
|
||||
});
|
||||
|
||||
|
||||
@ -16,11 +16,11 @@ import LessonContent from 'App/Models/LessonContent';
|
||||
import Role from 'App/Models/Role';
|
||||
import User from 'App/Models/User';
|
||||
|
||||
const makeFakeUser = (faker: Faker.FakerStatic) => {
|
||||
const makeFakeUser = (faker: Faker.FakerStatic, loginPrefix?: string) => {
|
||||
return {
|
||||
first_name: faker.name.firstName(),
|
||||
last_name: faker.name.lastName(),
|
||||
login: `${faker.lorem.word(12)}${faker.datatype.number(100)}`,
|
||||
login: `${loginPrefix || 'user'}${faker.datatype.number(1000)}`,
|
||||
email: faker.internet.exampleEmail(),
|
||||
password: '123456',
|
||||
};
|
||||
@ -36,14 +36,19 @@ export const UserFactory = Factory.define(User, ({ faker }) => makeFakeUser(fake
|
||||
.relation('contacts', () => ContactFactory)
|
||||
.build();
|
||||
|
||||
export const TeacherFactory = Factory.define(User, ({ faker }) => makeFakeUser(faker))
|
||||
export const TeacherFactory = Factory.define(User, ({ faker }) => makeFakeUser(faker, 'teacher'))
|
||||
.relation('contacts', () => ContactFactory)
|
||||
.after('create', async (_, user: User) => {
|
||||
/**
|
||||
* Get teacher role to attach after create new user
|
||||
*/
|
||||
const role = await Role.findByOrFail('slug', 'teacher');
|
||||
user.related('roles').attach([role.id]);
|
||||
await user.related('roles').attach([role.id]);
|
||||
})
|
||||
.build();
|
||||
|
||||
export const StudentFactory = Factory.define(User, ({ faker }) => makeFakeUser(faker, 'student'))
|
||||
.relation('contacts', () => ContactFactory)
|
||||
.after('create', async (_, user: User) => {
|
||||
const role = await Role.findByOrFail('slug', 'student');
|
||||
await user.related('roles').attach([role.id]);
|
||||
})
|
||||
.build();
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
import BaseSeeder from '@ioc:Adonis/Lucid/Seeder';
|
||||
import Role from 'App/Models/Role';
|
||||
import User from 'App/Models/User';
|
||||
import { UserFactory } from 'Database/factories';
|
||||
import { StudentFactory } from 'Database/factories';
|
||||
|
||||
export default class UserSeeder extends BaseSeeder {
|
||||
public async run() {
|
||||
@ -22,14 +22,13 @@ export default class UserSeeder extends BaseSeeder {
|
||||
last_name: 'Doe',
|
||||
login: 'admin',
|
||||
password: '123456',
|
||||
email: 'example.email@mail.com',
|
||||
email: 'administrator@example.com',
|
||||
});
|
||||
await userAdmin.related('roles').attach([roles.admin.id]);
|
||||
|
||||
/**
|
||||
* Student
|
||||
* Students
|
||||
*/
|
||||
const userStudent = await UserFactory.with('contacts').create();
|
||||
await userStudent.related('roles').attach([roles.student.id]);
|
||||
await StudentFactory.with('contacts').createMany(20);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user