| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
- import Serie from 'App/Models/Series'
- import PaginationService from 'App/Services/PaginationService'
- import { schema } from '@ioc:Adonis/Core/Validator'
- export default class SeriesController {
- private paginationService = new PaginationService(Serie)
- public async index({ request }: HttpContextContract) {
- return await this.paginationService.paginate(request.all())
- }
- public async store({ request }: HttpContextContract) {
- await request.validate({
- schema: schema.create({
- title: schema.string(),
- description: schema.string.optional(),
- cover: schema.string.optional(),
- tags: schema.array.optional().members(schema.string()),
- releaseDate: schema.date.optional(),
- meta: schema.object.optional().anyMembers()
- })
- })
- return await Serie.create(request.all())
- }
- public async show({ params }: HttpContextContract) {
- return await Serie.findOrFail(params.id)
- }
- public async update({ params, request }: HttpContextContract) {
- const serie = await Serie.findOrFail(params.id)
- const payload = await request.validate({
- schema: schema.create({
- title: schema.string.optional(),
- description: schema.string.optional(),
- cover: schema.string.optional(),
- tags: schema.array.optional().members(schema.string()),
- releaseDate: schema.date.optional(),
- meta: schema.object.optional().anyMembers()
- })
- })
- serie.merge(payload)
- return await serie.save()
- }
- public async destroy({ params }: HttpContextContract) {
- const serie = await Serie.findOrFail(params.id)
- await serie.delete()
- }
- }
|