PageSetting.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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.APIAdresses = {
  8. base: '/cma/settings',
  9. getWithKey: (key) => '/cma/settings/key/' + key,
  10. updateWithKey: (key) => '/admin/setting/' + key
  11. }
  12. this.CacheList = {
  13. base: this.name + this.APIAdresses.base,
  14. getWithKey: (key) => this.name + this.APIAdresses.getWithKey(key)
  15. }
  16. }
  17. index (data, cache = { TTL: 1000 }) {
  18. return this.sendRequest({
  19. apiMethod: 'get',
  20. api: this.api,
  21. request: this.APIAdresses.base,
  22. cacheKey: this.CacheList.base,
  23. ...(cache !== undefined && { cache }),
  24. resolveCallback: (response) => {
  25. return {
  26. referralCodeList: new PageSettingList(response.data.data),
  27. paginate: response.data.meta
  28. // {
  29. // current_page: 1,
  30. // from: 1,
  31. // last_page: 1,
  32. // path: '...',
  33. // per_page: 15,
  34. // to: 10,
  35. // total: 10
  36. // }
  37. }
  38. },
  39. rejectCallback: (error) => {
  40. return error
  41. }
  42. })
  43. }
  44. create (data) {
  45. const formData = new FormData()
  46. formData.append('key', data.key)
  47. formData.append('value', data.value)
  48. return this.sendRequest({
  49. apiMethod: 'post',
  50. api: this.api,
  51. request: this.APIAdresses.base,
  52. data: formData,
  53. resolveCallback: (response) => {
  54. return response.data
  55. },
  56. rejectCallback: (error) => {
  57. return error
  58. }
  59. })
  60. }
  61. update (data) {
  62. // const settingKey = encodeURI(data.key)
  63. const settingKey = data.key
  64. const settingValue = data.value
  65. return this.sendRequest({
  66. apiMethod: 'post',
  67. api: this.api,
  68. request: this.APIAdresses.base,
  69. data: {
  70. key: settingKey,
  71. value: settingValue
  72. },
  73. resolveCallback: (response) => {
  74. return response
  75. },
  76. rejectCallback: (error) => {
  77. return error
  78. }
  79. })
  80. }
  81. get (data, cache = { TTL: 1000 }) {
  82. return this.sendRequest({
  83. apiMethod: 'get',
  84. api: this.api,
  85. request: this.APIAdresses.getWithKey(encodeURI(data)),
  86. cacheKey: this.CacheList.getWithKey(encodeURI(data)),
  87. ...(cache !== undefined && { cache }),
  88. resolveCallback: (response) => {
  89. return new PageSetting(response.data)
  90. },
  91. rejectCallback: (error) => {
  92. return error
  93. }
  94. })
  95. }
  96. }