56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { apiClient } from "@/lib/api-client";
|
|
import { env } from "@/config/env";
|
|
import type { ContentInput, ContentUpdateInput, CmsType } from "./schemas";
|
|
|
|
export const contentService = {
|
|
getAll: async (cmsType: CmsType) => {
|
|
const response = await apiClient.get(
|
|
`/${env.endpoints.cmsManagement}/get/${cmsType}/all`
|
|
);
|
|
return response.data;
|
|
},
|
|
|
|
create: async (data: ContentInput) => {
|
|
const formData = new FormData();
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
if (value !== undefined && value !== null) {
|
|
formData.append(key, value);
|
|
}
|
|
});
|
|
|
|
const response = await apiClient.post(
|
|
`/${env.endpoints.cmsManagement}/create`,
|
|
formData,
|
|
{
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
}
|
|
);
|
|
return response.data;
|
|
},
|
|
|
|
update: async (id: string, data: ContentUpdateInput) => {
|
|
const formData = new FormData();
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
if (value !== undefined && value !== null) {
|
|
formData.append(key, value);
|
|
}
|
|
});
|
|
|
|
const response = await apiClient.put(
|
|
`/${env.endpoints.cmsManagement}/update/${id}`,
|
|
formData,
|
|
{
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
}
|
|
);
|
|
return response.data;
|
|
},
|
|
|
|
delete: async (id: string) => {
|
|
const response = await apiClient.delete(
|
|
`/${env.endpoints.cmsManagement}/delete/${id}`
|
|
);
|
|
return response.data;
|
|
},
|
|
};
|