UserBalancesController.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
  2. import UserBalance from 'App/Models/UserBalance'
  3. import PaginationService from 'App/Services/PaginationService'
  4. import { schema } from '@ioc:Adonis/Core/Validator'
  5. export default class UserBalancesController {
  6. private paginationService = new PaginationService(UserBalance)
  7. public async index({ request }: HttpContextContract) {
  8. return await this.paginationService.paginate(request.all())
  9. }
  10. public async store({ request }: HttpContextContract) {
  11. const data: any = await request.validate({
  12. schema: schema.create({
  13. userId: schema.number(),
  14. balance: schema.string()
  15. })
  16. })
  17. const userBalance = await UserBalance.create(data)
  18. return userBalance
  19. }
  20. public async show({ params }: HttpContextContract) {
  21. const row = await UserBalance.findOrFail(params.id)
  22. return row
  23. }
  24. public async update({ params, request }: HttpContextContract) {
  25. const userBalance = await UserBalance.findOrFail(params.id)
  26. const data: any = await request.validate({
  27. schema: schema.create({
  28. userId: schema.number.optional(),
  29. amount: schema.number.optional(),
  30. type: schema.string.optional(),
  31. description: schema.string.optional()
  32. })
  33. })
  34. userBalance.merge(data)
  35. await userBalance.save()
  36. return userBalance
  37. }
  38. public async destroy({ params }: HttpContextContract) {
  39. const userBalance = await UserBalance.findOrFail(params.id)
  40. await userBalance.delete()
  41. }
  42. }