From d33ad862097b9c3d7cf92fc10a0af9899f8eee7a Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sat, 15 Nov 2025 11:10:42 +0330 Subject: [PATCH] upload service + hooks + types --- src/pages/uploader/service/UploaderService.ts | 22 +++++++++++++++---- src/pages/uploader/types/Types.ts | 16 ++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/pages/uploader/types/Types.ts diff --git a/src/pages/uploader/service/UploaderService.ts b/src/pages/uploader/service/UploaderService.ts index 392f0bf..3c51f8d 100644 --- a/src/pages/uploader/service/UploaderService.ts +++ b/src/pages/uploader/service/UploaderService.ts @@ -1,17 +1,31 @@ import axios from "@/config/axios"; +import type { + SingleUploadResponse, + MultipleUploadResponse, +} from "../types/Types"; -export const singleUpload = async (file: File) => { +export const singleUpload = async ( + file: File +): Promise => { const formData = new FormData(); formData.append("file", file); - const { data } = await axios.post(`/uploader/single-file`, formData); + const { data } = await axios.post( + `/uploader/single-file`, + formData + ); return data; }; -export const multipleUpload = async (files: File[]) => { +export const multipleUpload = async ( + files: File[] +): Promise => { const formData = new FormData(); files.forEach((file) => { formData.append("files", file); }); - const { data } = await axios.post(`/uploader/multi-file`, formData); + const { data } = await axios.post( + `/uploader/multi-file`, + formData + ); return data; }; diff --git a/src/pages/uploader/types/Types.ts b/src/pages/uploader/types/Types.ts new file mode 100644 index 0000000..e1df8aa --- /dev/null +++ b/src/pages/uploader/types/Types.ts @@ -0,0 +1,16 @@ +import type { IResponse } from "@/types/response.types"; + +export type UploadedFile = { + key: string; + url: string; + bucket: string; +}; + +export type SingleUploadResponseData = { + file: UploadedFile; + url: string; +}; + +export type SingleUploadResponse = IResponse; + +export type MultipleUploadResponse = IResponse;