| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
- import User from 'App/Models/User'
- import PaginationService from 'App/Services/PaginationService'
- import { schema, rules } from '@ioc:Adonis/Core/Validator'
- export default class UsersController {
- private paginationService = new PaginationService(User)
- public async index({ request }: HttpContextContract) {
- return await this.paginationService.paginate(request.all())
- }
- public async store({ request }: HttpContextContract) {
- await request.validate({
- schema: schema.create({
- username: schema.string([])
- })
- })
- return await User.create(request.all())
- }
- public async show({ params }: HttpContextContract) {
- return await User.findOrFail(params.id)
- }
- public async update({ params, request }: HttpContextContract) {
- const user = await User.findOrFail(params.id)
- const payload = await request.validate({
- schema: schema.create({
- username: schema.string.optional([rules.maxLength(20)]),
- avatar: schema.string.optional([rules.maxLength(255)])
- })
- })
- user.merge(payload)
- return await user.save()
- }
- public async destroy({ params }: HttpContextContract) {
- const user = await User.findOrFail(params.id)
- await user.delete()
- }
- public async my({ auth }: HttpContextContract) {
- return auth.user
- }
- }
|