import axios from './instance' import { params } from '@/env' import { GUIDE_LIST, INSERT_GUIDE, UPDATE_GUIDE, DELETE_GUIDE, } from './constant' interface ServiceGuide { fusionGuideId: number cover: string title: string recoveryContent?: string } export interface Guide { id: string cover: string title: string recoveryContent?: string } export type Guides = Guide[] const serviceToLocal = (serviceGuide: ServiceGuide): Guide => ({ ...serviceGuide, id: serviceGuide.fusionGuideId.toString(), }) const localToService = (guide: Guide): ServiceGuide => ({ ...guide, fusionGuideId: Number(guide.id), }) export const fetchGuides = async () => { const guides = await axios.get(GUIDE_LIST, { params: { caseId: params.caseId } }) return guides.map(serviceToLocal) } export const postAddGuide = async (guide: Guide) => { const addData = { ...localToService(guide), caseId: params.caseId, fusionGuideId: undefined } const serviceData = await axios.post(INSERT_GUIDE, addData) return serviceToLocal(serviceData) } export const postUpdateGuide = async (guide: Guide) => { return axios.post(UPDATE_GUIDE, { ...localToService(guide)}) } export const postDeleteGuide = (id: Guide['id']) => { return axios.post(DELETE_GUIDE, { fusionGuideId: Number(id) }) }