diff --git a/app/Controllers/Http/InformationsController.ts b/app/Controllers/Http/InformationsController.ts new file mode 100644 index 0000000..be1abfe --- /dev/null +++ b/app/Controllers/Http/InformationsController.ts @@ -0,0 +1,23 @@ +import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext"; +import Information from "App/Models/Information"; +import InformationUpdateValidator from "App/Validators/information/InformationUpdateValidator"; + +export default class InformationsController { + + public async index ( { response }: HttpContextContract ) { + return response.status(200).send({ + informations: await Information.first() + }) + } + + public async update ( { response, request }: HttpContextContract ) { + const information = await Information.firstOrFail() + const data = await request.validate(InformationUpdateValidator) + await information.merge(data).save() + + return response.status(200).send({ + information + }) + } + +} diff --git a/app/Controllers/Http/ProfilesController.ts b/app/Controllers/Http/ProfilesController.ts deleted file mode 100644 index f506289..0000000 --- a/app/Controllers/Http/ProfilesController.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext"; -import Profile from "App/Models/Profile"; -import ProfileUpdateValidator from "App/Validators/profile/ProfileUpdateValidator"; - -export default class ProfilesController { - - public async index ( { response }: HttpContextContract ) { - return response.status(200).send({ - profile: await Profile.first() - }) - } - - public async update ( { response, request }: HttpContextContract ) { - const profile = await Profile.firstOrFail() - const data = await request.validate(ProfileUpdateValidator) - await profile.merge(data).save() - - return response.status(200).send({ - profile - }) - } - -} diff --git a/app/Models/Profile.ts b/app/Models/Information.ts similarity index 52% rename from app/Models/Profile.ts rename to app/Models/Information.ts index eda9e1d..ce7c71e 100644 --- a/app/Models/Profile.ts +++ b/app/Models/Information.ts @@ -1,15 +1,19 @@ import {DateTime} from 'luxon' -import {BaseModel, column} from '@ioc:Adonis/Lucid/Orm' +import {BaseModel, BelongsTo, belongsTo, column} from '@ioc:Adonis/Lucid/Orm' +import Translation from "App/Models/Translation"; -export default class Profile extends BaseModel { +export default class Information extends BaseModel { @column({ isPrimary: true }) public id: number @column() public age: number + @belongsTo(() => Translation) + public translation: BelongsTo + @column() - public hiringStatus: string + public translationId: number @column() public hiringColor: string diff --git a/app/Validators/profile/ProfileUpdateValidator.ts b/app/Validators/information/InformationUpdateValidator.ts similarity index 89% rename from app/Validators/profile/ProfileUpdateValidator.ts rename to app/Validators/information/InformationUpdateValidator.ts index 11f94a8..e6256b2 100644 --- a/app/Validators/profile/ProfileUpdateValidator.ts +++ b/app/Validators/information/InformationUpdateValidator.ts @@ -1,7 +1,7 @@ import {schema} from '@ioc:Adonis/Core/Validator' import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext' -export default class ProfileUpdateValidator { +export default class InformationUpdateValidator { public schema = schema.create({ age: schema.number.optional(), hiring_status: schema.string.optional(), diff --git a/database/migrations/1628110086918_profiles.ts b/database/migrations/1628945210540_informations.ts similarity index 61% rename from database/migrations/1628110086918_profiles.ts rename to database/migrations/1628945210540_informations.ts index e4bae15..a334a8b 100644 --- a/database/migrations/1628110086918_profiles.ts +++ b/database/migrations/1628945210540_informations.ts @@ -1,14 +1,18 @@ import BaseSchema from '@ioc:Adonis/Lucid/Schema' -export default class Profiles extends BaseSchema { - protected tableName = 'profiles' +export default class Informations extends BaseSchema { + protected tableName = 'informations' public async up () { this.schema.createTable(this.tableName, (table) => { table.increments('id') table.integer('age').notNullable() table.string('hiring_color').notNullable() - table.string('hiring_status').notNullable() + table + .integer('translation_id') + .unsigned() + .references('translations.id') + .onDelete('CASCADE') table.timestamps(true, true) }) } diff --git a/start/routes/artsite.ts b/start/routes/artsite.ts index 077e33a..3bf6630 100644 --- a/start/routes/artsite.ts +++ b/start/routes/artsite.ts @@ -9,7 +9,7 @@ Route.group(() => { Route.resource('/projects', 'ProjectsController').except(['edit', 'create']) - Route.resource('/profile', 'ProfilesController').only(['index', 'update']) + Route.resource('/informations', 'InformationsController').only(['index', 'update']) Route.group(() => { Route.get('/:slug', 'PostsController.getLikes')