Media.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { appApi } from 'src/boot/axios.js'
  2. import APIRepository from '../classes/APIRepository.js'
  3. import { Media, MediaList } from 'src/models/Media.js'
  4. export default class MediaAPI extends APIRepository {
  5. constructor() {
  6. super('media', appApi)
  7. this.APIAdresses = {
  8. base: '/cma/medias',
  9. byId: (id) => '/cma/medias/' + id,
  10. assignService: (id) => '/core/packages/' + id + '/assign'
  11. }
  12. this.CacheList = {
  13. base: this.name + this.APIAdresses.base
  14. }
  15. this.restUrl = (id) => this.APIAdresses.base + '/' + id
  16. /* Setting the callback functions for the CRUD operations. */
  17. this.setCrudCallbacks({
  18. get: (response) => { return new Media(response.data) },
  19. post: (response) => { return new Media(response.data) },
  20. put: (response) => { return new Media(response.data) },
  21. delete: (response) => { return response.data }
  22. })
  23. }
  24. index(data) {
  25. return this.sendRequest({
  26. apiMethod: 'get',
  27. api: this.api,
  28. request: this.APIAdresses.base,
  29. data: this.getNormalizedSendData({
  30. page: 1 // Number
  31. }, data),
  32. resolveCallback: (response) => {
  33. const paginate = response.data
  34. const results = response.data.results
  35. delete paginate.results
  36. return {
  37. list: new MediaList(results),
  38. paginate
  39. // {
  40. // "count": 1,
  41. // "num_pages": 1,
  42. // "per_page": 10,
  43. // "current": 1,
  44. // "next": null,
  45. // "previous": null,
  46. // }
  47. }
  48. },
  49. rejectCallback: (error) => {
  50. return error
  51. }
  52. })
  53. }
  54. }