csa-dashboard-sementara/csa-dashboard/modules/cms/content/services.ts

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;
},
};