OcrDevicesController.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
  2. import PaginationService from 'App/Services/PaginationService'
  3. import { schema } from '@ioc:Adonis/Core/Validator'
  4. import OcrDevice from 'App/Models/OcrDevice'
  5. export default class OcrDevicesController {
  6. private paginationService = new PaginationService(OcrDevice)
  7. public async index({ request }: HttpContextContract) {
  8. return await this.paginationService.paginate(request.all())
  9. }
  10. public async store({ request, bouncer }: HttpContextContract) {
  11. // await bouncer.authorize('admin')
  12. const data = await request.validate({
  13. schema: schema.create({
  14. id: schema.string(),
  15. platform: schema.string(),
  16. channel: schema.string(),
  17. deviceInfo: schema.string.optional(),
  18. total: schema.number(),
  19. scanned: schema.number()
  20. })
  21. })
  22. const device = await OcrDevice.findBy('id', data.id)
  23. if (device) {
  24. device.merge(data)
  25. return await device.save()
  26. } else {
  27. return await OcrDevice.create(data)
  28. }
  29. }
  30. }