import { useI18n } from '@eciol/locale'; import { uploadRequest } from '@eciol/request'; import { replaceVariables } from '@eciol/shared'; import { DownloadFileParams, UploadFileParams } from '@eciol/types'; import { jAVAResultEnum } from '@/enums'; import type { DownloadApiResult, GetFileListParams, UploadApiResult } from './model/uploadModel'; const { t } = useI18n(); enum Api { Upload = '/http/upload', Download = '/http/download/{id}', FileList = '/http/filelist/{fileids}', Delete = '/http/delete/{id}', } /** * @description: Upload interface */ export function uploadApi( params: UploadFileParams, onUploadProgress: (progressEvent: ProgressEvent) => void, ) { return uploadRequest.uploadFile( { url: Api.Upload, onUploadProgress, }, params, { showLoading: true, loadingTip: 'UPLOAD', successMessageMode: 'message', operationType: 'UPLOAD', getResultEnum: () => jAVAResultEnum, }, ); } /** * @description: Download interface */ export const downloadApi = (params: DownloadFileParams) => { return uploadRequest.get( { url: replaceVariables(Api.Download, params), responseType: 'blob', }, { isTransformResponse: false, showLoading: true, loadingTip: 'DOWNLOAD', successMessageMode: 'message', successMessage: t('sys.api.downloadSuccess'), getResultEnum: () => jAVAResultEnum, }, ); }; /** * @description: Download interface */ export const getFileListApi = (params: GetFileListParams) => { return uploadRequest.get( { url: replaceVariables(Api.FileList, params), }, { getResultEnum: () => jAVAResultEnum, }, ); }; /** * @description: Delete File interface */ export const deleteFileApi = (params: DownloadFileParams) => { return uploadRequest.get( { url: replaceVariables(Api.Delete, params), }, { showLoading: true, loadingTip: 'DELETE', successMessageMode: 'message', operationType: 'DELETE', getResultEnum: () => jAVAResultEnum, }, ); };