123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import axios from './instance'
- import { RECORD_LIST, DELETE_RECORD, UPDATE_RECORD, MERGE_RECORD } from './constant'
- import { params } from '@/env'
- export enum RecordStatus {
- ERR = -1,
- RUN = 0,
- SUCCESS = 1
- }
- export interface Record {
- id: string
- cover: string
- title: string
- url: string
- sort: number
- status: RecordStatus
- }
- interface ServiceRecord {
- videoFolderId: number,
- videoFolderName: string,
- videoFolderCover: string,
- videoMergeUrl: string,
- sort: number,
- uploadStatus: RecordStatus
- }
- const toLocal = (serviceRecord: ServiceRecord) : Record => ({
- id: serviceRecord.videoFolderId.toString(),
- cover: serviceRecord.videoFolderCover,
- title: serviceRecord.videoFolderName,
- url: serviceRecord.videoMergeUrl,
- sort: serviceRecord.sort,
- status: serviceRecord.uploadStatus
- })
- const toService = (record: Record, isUpdate = true): PartialProps<ServiceRecord, 'videoFolderId'> => ({
- videoFolderId: isUpdate ? Number(record.id): undefined,
- videoFolderName: record.title,
- videoFolderCover: record.cover,
- videoMergeUrl: record.url,
- sort: record.sort,
- uploadStatus: record.status
- })
- export type Records = Record[]
- export const fetchRecords = async () => {
- const data = await axios.get<ServiceRecord[]>(RECORD_LIST, { params: { caseId: params.caseId } })
- return data.map(toLocal)
- }
- export const postAddRecord = async (record: Record, files: File[]) => {
- const serviceRecord = await postMegerRecord(files)
- return toLocal(serviceRecord)
- }
- export const postUpdateRecord = async (record: Record) => {
- const serviceRecord = toService(record)
- await axios.post(UPDATE_RECORD, serviceRecord)
- }
- export const postMegerRecord = (files: File[], recordId?: Record['id']) => {
- return axios.post<ServiceRecord>(MERGE_RECORD, {
- folderId: recordId && Number(recordId),
- caseId: params.caseId,
- files
- })
- }
- export const postDeleteRecord = async (id: Record['id']) => {
- await axios.post(DELETE_RECORD, { fusionMeterId: Number(id) })
- }
|