mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-25 17:10:27 +01:00
Working on new version of website
Signed-off-by: Arthur DANJOU <arthurdanjou@outlook.fr>
This commit is contained in:
63
app/Controllers/Http/AnnouncesController.ts
Normal file
63
app/Controllers/Http/AnnouncesController.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext";
|
||||
import Announce from "App/Models/Announce";
|
||||
import AnnounceStoreValidator from "App/Validators/announce/AnnounceStoreValidator";
|
||||
import AnnounceUpdateValidator from "App/Validators/announce/AnnounceUpdateValidator";
|
||||
import getTranslation from "App/Tasks/getTranslation";
|
||||
import File from "App/Models/File";
|
||||
|
||||
export default class AnnouncesController {
|
||||
|
||||
public async index ({ response }: HttpContextContract) {
|
||||
const announce = await Announce.query().orderBy('created_at', 'desc').first()
|
||||
return response.status(200).send({
|
||||
announce: announce
|
||||
})
|
||||
}
|
||||
|
||||
public async store ({ request, response }: HttpContextContract) {
|
||||
const data = await request.validate(AnnounceStoreValidator)
|
||||
const announce = new Announce()
|
||||
|
||||
const translation = await getTranslation(data.code)
|
||||
await announce.related('message').associate(translation)
|
||||
|
||||
const cover = await File.findBy('label', data.cover)
|
||||
if (cover) await announce.related('cover').save(cover)
|
||||
|
||||
return response.status(200).send({
|
||||
announce: announce.save()
|
||||
})
|
||||
}
|
||||
|
||||
public async show ({ params, response }: HttpContextContract) {
|
||||
return response.status(200).send({
|
||||
user: await Announce.findOrFail(params.id)
|
||||
})
|
||||
}
|
||||
|
||||
public async update({ request, params, response }: HttpContextContract) {
|
||||
const data = await request.validate(AnnounceUpdateValidator)
|
||||
const announce = await Announce.findOrFail(params.id)
|
||||
|
||||
if (data.code) {
|
||||
const translation = await getTranslation(data.code)
|
||||
await announce.related('message').associate(translation)
|
||||
}
|
||||
|
||||
const cover = await File.findBy('label', data.cover)
|
||||
if (cover) await announce.related('cover').save(cover)
|
||||
|
||||
return response.status(200).send({
|
||||
announce
|
||||
})
|
||||
}
|
||||
|
||||
public async destroy ({ response, params }: HttpContextContract) {
|
||||
const announce = await Announce.findOrFail(params.id)
|
||||
await announce.delete()
|
||||
return response.status(200).send({
|
||||
message: 'Announce successfully deleted!'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user