/
sigma
/
Acloud
Обзор
Документация
Войти
/
sigma
/
Acloud
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/api/files.ts
54 строки
1 KB
Александр Пимкин
first_commit
17 апр 2025, 11:39
17 апр 2025, 11:39
e24d434
Код
Авторство
О чём код?
import { FileItem } from '@/api/dto/files.dto' import axios from '@/core/axios' import { saveAs } from 'file-saver' type FileType = 'all' | 'photos' | 'trash' export const getAll = async (type: FileType = 'all'): Promise<FileItem[]> => { return (await axios.get('/files?type=' + type)).data } export const remove = (ids: number[]): Promise<void> => { return axios.delete('/files?ids=' + ids) } export const uploadFile = async (options: any) => { const { onSuccess, onError, file, onProgress } = options const formData = new FormData() formData.append('file', file) const config = { headers: { 'Content-Type': 'multipart/form-data' }, onProgress: (event: ProgressEvent) => { onProgress({ percent: (event.loaded / event.total) * 100 }) }, } try { const { data } = await axios.post('files', formData, config) onSuccess() return data } catch (err) { onError({ err }) } } export const downloadFile = async ( id: number, filename: string, mimetype: string ): Promise<void> => { try { const response = await axios.get(`/files/${id}`, { responseType: 'blob', }) saveAs(new Blob([response.data], { type: mimetype }), filename) } catch (error) { console.error('Error downloading file:', error) throw error } }