TextRecordController.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import PaginationService from 'App/Services/PaginationService'
  2. import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
  3. import TextRecord from 'App/Models/TextRecord'
  4. import { schema } from '@ioc:Adonis/Core/Validator'
  5. export default class TextRecordController {
  6. private paginationService = new PaginationService(TextRecord)
  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. // 数据校验
  13. await request.validate({
  14. schema: schema.create({
  15. deviceId: schema.string(),
  16. appName: schema.string(),
  17. record: schema.string()
  18. })
  19. })
  20. // 数据提取
  21. // const payload = request.only(['deviceId', 'appName', 'record'])
  22. return await TextRecord.create(request.all())
  23. }
  24. public async update({ request, params, bouncer }: HttpContextContract) {
  25. await bouncer.authorize('admin')
  26. const payload = await request.validate({
  27. schema: schema.create({
  28. deviceId: schema.string.optional(),
  29. appName: schema.string.optional(),
  30. record: schema.string.optional(),
  31. password: schema.string.optional()
  32. })
  33. })
  34. const record = await TextRecord.findOrFail(params.id)
  35. record.merge(payload)
  36. await record.save()
  37. return record
  38. }
  39. }