Ringtone app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

68 line
1.8 KiB

  1. import {models} from '@tonality/library-common';
  2. import {FetchClientParams, Method} from '../../utils/api/fetch';
  3. export const create = (body: Partial<models.Ringtone>): FetchClientParams => ({
  4. method: Method.POST,
  5. url: ['', 'api', 'ringtones'].join('/'),
  6. body: JSON.stringify(body),
  7. headers: {
  8. 'Content-Type': 'application/json',
  9. },
  10. })
  11. export const get = (id: string): FetchClientParams => ({
  12. method: Method.GET,
  13. url: ['', 'api', 'ringtones', encodeURIComponent(id)].join('/'),
  14. })
  15. export const browse = ({ skip, take, }: { skip?: number, take?: number }): FetchClientParams => {
  16. const params: FetchClientParams = {
  17. method: Method.GET,
  18. url: ['', 'api', 'ringtones'].join('/'),
  19. }
  20. if (Number.isFinite(skip) || Number.isFinite(take)) {
  21. params.query = {}
  22. if (Number.isFinite(skip)) {
  23. params.query.skip = skip.toString()
  24. }
  25. if (Number.isFinite(take)) {
  26. params.query.take = take.toString()
  27. }
  28. }
  29. return params
  30. }
  31. export const update = (id: string) => (body: Partial<models.Ringtone>): FetchClientParams => ({
  32. method: Method.PATCH,
  33. url: ['', 'api', 'ringtones', encodeURIComponent(id)].join('/'),
  34. body: JSON.stringify(body),
  35. headers: {
  36. 'Content-Type': 'application/json',
  37. },
  38. })
  39. export const softDelete = (id: string): FetchClientParams => ({
  40. method: Method.POST,
  41. url: ['', 'api', 'ringtones', encodeURIComponent(id), 'delete'].join('/'),
  42. })
  43. export const undoDelete = (id: string): FetchClientParams => ({
  44. method: Method.DELETE,
  45. url: ['', 'api', 'ringtones', encodeURIComponent(id), 'delete'].join('/'),
  46. })
  47. export const hardDelete = (id: string): FetchClientParams => ({
  48. method: Method.DELETE,
  49. url: ['', 'api', 'ringtones', encodeURIComponent(id)].join('/'),
  50. })
  51. export const search = (q: string): FetchClientParams => ({
  52. method: Method.PATCH,
  53. url: ['', 'api', 'search', 'ringtones'].join('/'),
  54. query: {
  55. q,
  56. },
  57. })