guide.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import axios from './instance'
  2. import { params } from '@/env'
  3. import {
  4. GUIDE_LIST,
  5. INSERT_GUIDE,
  6. UPDATE_GUIDE,
  7. DELETE_GUIDE,
  8. } from './constant'
  9. interface ServiceGuide {
  10. fusionGuideId: number
  11. cover: string
  12. title: string
  13. showTaggings?: boolean
  14. showMeasure?: boolean
  15. showMonitor?: boolean
  16. showPath?: boolean
  17. }
  18. export interface Guide {
  19. id: string
  20. cover: string
  21. title: string
  22. recoveryContent?: string
  23. changeAnimationStatus?: boolean
  24. showTagging: boolean
  25. showMeasure: boolean
  26. showMonitor: boolean
  27. showPath: boolean
  28. }
  29. export type Guides = Guide[]
  30. const serviceToLocal = (serviceGuide: ServiceGuide): Guide => ({
  31. showTagging: true,
  32. showMeasure: true,
  33. showMonitor: true,
  34. showPath: true,
  35. ...serviceGuide,
  36. id: serviceGuide.fusionGuideId.toString(),
  37. })
  38. const localToService = (guide: Guide): ServiceGuide => ({
  39. ...guide,
  40. fusionGuideId: Number(guide.id),
  41. })
  42. export const fetchGuides = async () => {
  43. const guides = await axios.get<ServiceGuide[]>(GUIDE_LIST, { params: { caseId: params.caseId } })
  44. return guides.map(serviceToLocal)
  45. }
  46. export const postAddGuide = async (guide: Guide) => {
  47. const addData = { ...localToService(guide), caseId: params.caseId, fusionGuideId: undefined }
  48. const serviceData = await axios.post<ServiceGuide>(INSERT_GUIDE, addData)
  49. return serviceToLocal(serviceData)
  50. }
  51. export const postUpdateGuide = async (guide: Guide) => {
  52. return axios.post<undefined>(UPDATE_GUIDE, { ...localToService(guide)})
  53. }
  54. export const postDeleteGuide = (id: Guide['id']) => {
  55. return axios.post<undefined>(DELETE_GUIDE, { fusionGuideId: Number(id) })
  56. }