From 7a5a246177f5e94491a1bbb31da9200517c05d76 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Mon, 16 Aug 2021 22:32:30 +0200 Subject: [PATCH] Working and optimise --- app/Controllers/Http/AnnouncesController.ts | 8 +++----- app/Models/Announce.ts | 4 +++- app/Tasks/getTranslation.ts | 6 +----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/app/Controllers/Http/AnnouncesController.ts b/app/Controllers/Http/AnnouncesController.ts index 4ff638e..8be227b 100644 --- a/app/Controllers/Http/AnnouncesController.ts +++ b/app/Controllers/Http/AnnouncesController.ts @@ -22,9 +22,7 @@ export default class AnnouncesController { public async store ({ request, response }: HttpContextContract) { const data = await request.validate(AnnounceStoreValidator) const announce = await Announce.create(data) - - const translation = await getTranslation(data.code) - await announce.related('message').associate(translation) + await announce.related('message').associate(await getTranslation(data.code)) const cover = await File.findBy('label', data.cover) if (cover) await announce.related('cover').associate(cover) @@ -48,12 +46,12 @@ export default class AnnouncesController { const announce = await Announce.findOrFail(params.id) if (data.code) { - const translation = await getTranslation(data.code) - await announce.related('message').associate(translation) + await announce.related('message').associate(await getTranslation(data.code)) } const cover = await File.findBy('label', data.cover) if (cover) await announce.related('cover').associate(cover) + await announce.merge(data).save() return response.status(200).send({ diff --git a/app/Models/Announce.ts b/app/Models/Announce.ts index 7634d8c..f33e14d 100644 --- a/app/Models/Announce.ts +++ b/app/Models/Announce.ts @@ -21,7 +21,9 @@ export default class Announce extends BaseModel { @column() public messageId: number - @belongsTo(() => File) + @belongsTo(() => File, { + foreignKey: 'coverId' + }) public cover: BelongsTo @column() diff --git a/app/Tasks/getTranslation.ts b/app/Tasks/getTranslation.ts index f002a65..fe127d9 100644 --- a/app/Tasks/getTranslation.ts +++ b/app/Tasks/getTranslation.ts @@ -1,9 +1,5 @@ import Translation from "App/Models/Translation"; export default async function getTranslation(code: string): Promise { - let translation = await Translation.findBy('code', code) - if (!translation) { - translation = await Translation.create({code: code}) - } - return translation + return await Translation.firstOrNew({code}, {code}) }