import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' import UserBalance from 'App/Models/UserBalance' import PaginationService from 'App/Services/PaginationService' import { schema } from '@ioc:Adonis/Core/Validator' export default class UserBalancesController { private paginationService = new PaginationService(UserBalance) public async index({ request }: HttpContextContract) { return await this.paginationService.paginate(request.all()) } public async store({ request }: HttpContextContract) { const data: any = await request.validate({ schema: schema.create({ userId: schema.number(), balance: schema.string() }) }) const userBalance = await UserBalance.create(data) return userBalance } public async show({ params }: HttpContextContract) { const row = await UserBalance.findOrFail(params.id) return row } public async update({ params, request }: HttpContextContract) { const userBalance = await UserBalance.findOrFail(params.id) const data: any = await request.validate({ schema: schema.create({ userId: schema.number.optional(), amount: schema.number.optional(), type: schema.string.optional(), description: schema.string.optional() }) }) userBalance.merge(data) await userBalance.save() return userBalance } public async destroy({ params }: HttpContextContract) { const userBalance = await UserBalance.findOrFail(params.id) await userBalance.delete() } }