upload service + hooks + types
This commit is contained in:
@@ -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<SingleUploadResponse> => {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
const { data } = await axios.post(`/uploader/single-file`, formData);
|
||||
const { data } = await axios.post<SingleUploadResponse>(
|
||||
`/uploader/single-file`,
|
||||
formData
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const multipleUpload = async (files: File[]) => {
|
||||
export const multipleUpload = async (
|
||||
files: File[]
|
||||
): Promise<MultipleUploadResponse> => {
|
||||
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<MultipleUploadResponse>(
|
||||
`/uploader/multi-file`,
|
||||
formData
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
@@ -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<SingleUploadResponseData>;
|
||||
|
||||
export type MultipleUploadResponse = IResponse<SingleUploadResponseData[]>;
|
||||
Reference in New Issue
Block a user