Added Tags

This commit is contained in:
2021-08-16 22:38:58 +02:00
parent 98f9402de4
commit 2c4a7c0dda
5 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext";
import getTranslation from "App/Tasks/getTranslation";
import TagStoreValidator from "App/Validators/tag/TagStoreValidator";
import TagUpdateValidator from "App/Validators/tag/TagUpdateValidator";
import Tag from "App/Models/Tag";
export default class TagsController {
public async index ({ response }: HttpContextContract) {
const tags = await Tag
.query()
.preload('label')
return response.status(200).send({
tags: tags
})
}
public async store ({ request, response }: HttpContextContract) {
const data = await request.validate(TagStoreValidator)
const tag = await Tag.create({})
await tag.related('label').associate(await getTranslation(data.label))
return response.status(200).send({
tag: tag
})
}
public async show ({ params, response }: HttpContextContract) {
const tag = await Tag.findOrFail(params.id)
tag.load('label')
return response.status(200).send({
tag
})
}
public async update ({ request, params, response }: HttpContextContract) {
const data = await request.validate(TagUpdateValidator)
const tag = await Tag.findOrFail(params.id)
if (data.label) {
await tag.related('label').associate(await getTranslation(data.label))
}
return response.status(200).send({
tag
})
}
public async destroy ({ response, params }: HttpContextContract) {
const tag = await Tag.findOrFail(params.id)
await tag.delete()
return response.status(200).send({
message: 'Tag successfully deleted!'
})
}
}