| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
- import Property, { PropertyType } from 'App/Models/Property'
- import PaginationService from 'App/Services/PaginationService'
- import { schema, rules } from '@ioc:Adonis/Core/Validator'
- import { Exception } from '@adonisjs/core/build/standalone'
- export default class PropertiesController {
- private paginationService = new PaginationService(Property)
- public async index({ request }: HttpContextContract) {
- return await this.paginationService.paginate(request.all())
- }
- public async store({ request, bouncer }: HttpContextContract) {
- await bouncer.authorize('admin')
- const data = await request.validate({
- schema: schema.create({
- name: schema.string(),
- value: schema.string(),
- remark: schema.string(),
- type: schema.enum(Object.values(PropertyType))
- })
- })
- return await Property.create(data)
- }
- public async show({ params, bouncer }: HttpContextContract) {
- // await bouncer.authorize('admin')
- return await Property.findOrFail(params.id)
- }
- public async findByName({ request }) {
- console.log(request)
- const data = await request.validate({
- schema: schema.create({
- name: schema.string()
- })
- })
- console.log(data)
- return await Property.findBy('name', data.name)
- }
- public async update({ request, params, bouncer }: HttpContextContract) {
- await bouncer.authorize('admin')
- const data = await request.validate({
- schema: schema.create({
- name: schema.string.optional([]),
- remark: schema.string.optional(),
- value: schema.string.optional(),
- type: schema.enum(Object.values(PropertyType))
- })
- })
- const property = await Property.findOrFail(params.id)
- property.merge(data)
- await property.save()
- return property
- }
- public async destroy({ params, bouncer }: HttpContextContract) {
- await bouncer.authorize('admin')
- // const property = await Property.findOrFail(params.id)
- // await property.delete()
- throw new Exception('Not implemented', 501)
- }
- }
|