PageSetting.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { appApi } from 'src/boot/axios.js'
  2. import APIRepository from '../classes/APIRepository.js'
  3. import { PageSetting, PageSettingList } from 'src/models/PageSetting.js'
  4. export default class PageSettingAPI extends APIRepository {
  5. constructor() {
  6. super('page-setting', appApi)
  7. this.serviceId = 1
  8. this.APIAdresses = {
  9. base: '/admin/setting',
  10. getWithKey: (key) => '/setting/' + key,
  11. updateWithKey: (key) => '/admin/setting/' + key
  12. }
  13. this.CacheList = {
  14. base: this.name + this.APIAdresses.base,
  15. getWithKey: (key) => this.name + this.APIAdresses.getWithKey(key)
  16. }
  17. }
  18. index (data, cache = { TTL: 1000 }) {
  19. return this.sendRequest({
  20. apiMethod: 'get',
  21. api: this.api,
  22. request: this.APIAdresses.base,
  23. cacheKey: this.CacheList.base,
  24. data: { service_id: this.serviceId },
  25. ...(cache !== undefined && { cache }),
  26. resolveCallback: (response) => {
  27. return {
  28. referralCodeList: new PageSettingList(response.data.data),
  29. paginate: response.data.meta
  30. // {
  31. // current_page: 1,
  32. // from: 1,
  33. // last_page: 1,
  34. // path: '...',
  35. // per_page: 15,
  36. // to: 10,
  37. // total: 10
  38. // }
  39. }
  40. },
  41. rejectCallback: (error) => {
  42. return error
  43. }
  44. })
  45. }
  46. create (data) {
  47. const formData = new FormData()
  48. formData.append('key', data.key)
  49. formData.append('value', data.value)
  50. formData.append('service_id', this.serviceId)
  51. return this.sendRequest({
  52. apiMethod: 'post',
  53. api: this.api,
  54. request: this.APIAdresses.base,
  55. data: formData,
  56. resolveCallback: (response) => {
  57. return response.data
  58. },
  59. rejectCallback: (error) => {
  60. return error
  61. }
  62. })
  63. }
  64. update (data) {
  65. const settingKey = encodeURI(data.key)
  66. const settingValue = data.value
  67. const formData = new FormData()
  68. formData.append('value', settingValue)
  69. formData.append('service_id', this.serviceId)
  70. formData.append('_method', 'PUT')
  71. return this.sendRequest({
  72. apiMethod: 'post',
  73. api: this.api,
  74. request: this.APIAdresses.updateWithKey(settingKey),
  75. data: formData,
  76. resolveCallback: (response) => {
  77. return response.data.data
  78. },
  79. rejectCallback: (error) => {
  80. return error
  81. }
  82. })
  83. }
  84. get (data, cache = { TTL: 30000 }) {
  85. return this.sendRequest({
  86. apiMethod: 'get',
  87. api: this.api,
  88. request: this.APIAdresses.getWithKey(encodeURI(data)),
  89. cacheKey: this.CacheList.getWithKey(encodeURI(data)),
  90. data: { service_id: this.serviceId },
  91. ...(cache !== undefined && { cache }),
  92. resolveCallback: (response) => {
  93. return new PageSetting(response.data.data)
  94. },
  95. rejectCallback: (error) => {
  96. return error
  97. }
  98. })
  99. }
  100. }