PageSetting.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 settingValue = data.value
  64. return this.sendRequest({
  65. apiMethod: 'post',
  66. api: this.api,
  67. request: this.APIAdresses.base,
  68. data: {
  69. key: settingKey,
  70. value: settingValue
  71. },
  72. resolveCallback: (response) => {
  73. return response
  74. },
  75. rejectCallback: (error) => {
  76. return error
  77. }
  78. })
  79. }
  80. get (data, cache = { TTL: 1000 }) {
  81. return this.sendRequest({
  82. apiMethod: 'get',
  83. api: this.api,
  84. request: this.APIAdresses.getWithKey(encodeURI(data)),
  85. cacheKey: this.CacheList.getWithKey(encodeURI(data)),
  86. ...(cache !== undefined && { cache }),
  87. resolveCallback: (response) => {
  88. return new PageSetting(response.data)
  89. },
  90. rejectCallback: (error) => {
  91. return error
  92. }
  93. })
  94. }
  95. }