ProjectAttendanceSheets.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import { appApi } from 'src/boot/axios.js'
  2. import APIRepository from '../classes/APIRepository.js'
  3. import { ProjectAttendanceSheets, ProjectAttendanceSheetsList } from 'src/models/ProjectAttendanceSheets.js'
  4. export default class ProjectAttendanceSheetsAPI extends APIRepository {
  5. constructor() {
  6. super('project_attendance_sheets', appApi, '/lma/project_attendance_sheets', ProjectAttendanceSheets)
  7. this.APIAdresses = {
  8. base: '/lma/project_attendance_sheets',
  9. project_sheets: '/lma/project_attendance_sheets/project_sheets',
  10. byId: (id) => '/lma/project_attendance_sheets/' + id,
  11. verify: (id) => '/lma/project_attendance_sheets/' + id + '/verify',
  12. notVerify: (id) => '/lma/project_attendance_sheets/' + id + '/not_verify'
  13. }
  14. this.CacheList = {
  15. base: this.name + this.APIAdresses.base,
  16. byId: (id) => this.name + this.APIAdresses.byId(id)
  17. }
  18. }
  19. index (data) {
  20. return this.sendRequest({
  21. apiMethod: 'get',
  22. api: this.api,
  23. request: this.APIAdresses.base,
  24. data: this.getNormalizedSendData({
  25. category: null, // Number
  26. per_page: 10, // Number
  27. page: 1 // Number
  28. }, data),
  29. resolveCallback: (response) => {
  30. const paginate = response.data
  31. const results = response.data.results
  32. delete paginate.results
  33. return {
  34. list: new ProjectAttendanceSheetsList(results),
  35. paginate
  36. // {
  37. // "count": 1,
  38. // "num_pages": 1,
  39. // "per_page": 10,
  40. // "current": 1,
  41. // "next": null,
  42. // "previous": null,
  43. // }
  44. }
  45. },
  46. rejectCallback: (error) => {
  47. return error
  48. }
  49. })
  50. }
  51. projectSheets (data) {
  52. return this.sendRequest({
  53. apiMethod: 'get',
  54. api: this.api,
  55. request: this.APIAdresses.project_sheets,
  56. data: this.getNormalizedSendData({
  57. project: null, // Number
  58. per_page: 10, // Number
  59. page: 1 // Number
  60. }, data),
  61. resolveCallback: (response) => {
  62. const paginate = response.data
  63. const results = response.data.results
  64. delete paginate.results
  65. return {
  66. list: new ProjectAttendanceSheetsList(results),
  67. paginate
  68. // {
  69. // "count": 1,
  70. // "num_pages": 1,
  71. // "per_page": 10,
  72. // "current": 1,
  73. // "next": null,
  74. // "previous": null,
  75. // }
  76. }
  77. },
  78. rejectCallback: (error) => {
  79. return error
  80. }
  81. })
  82. }
  83. verify (projectAttendanceSheetsId) {
  84. return this.sendRequest({
  85. apiMethod: 'put',
  86. api: this.api,
  87. request: this.APIAdresses.verify(projectAttendanceSheetsId),
  88. resolveCallback: (response) => {
  89. return new ProjectAttendanceSheets(response.data)
  90. },
  91. rejectCallback: (error) => {
  92. return error
  93. }
  94. })
  95. }
  96. notVerify (projectAttendanceSheetsId) {
  97. return this.sendRequest({
  98. apiMethod: 'put',
  99. api: this.api,
  100. request: this.APIAdresses.notVerify(projectAttendanceSheetsId),
  101. resolveCallback: (response) => {
  102. return new ProjectAttendanceSheets(response.data)
  103. },
  104. rejectCallback: (error) => {
  105. return error
  106. }
  107. })
  108. }
  109. }