import { type AxiosError, type AxiosResponse } from "axios"; import Project from "@/ApiClasses/Project"; import SectionCell from "@/ApiClasses/SectionCell"; import { axiosInstance, defaultApiErrorHandler, defaultApiSuccessHandler, } from "@/services/api"; // Entrepreneurs API function getEntrepreneurProjectId( onSuccessHandler?: (response: AxiosResponse) => void, onErrorHandler?: (error: AxiosError) => void ): void { axiosInstance .get("/entrepreneur/projects") .then((response) => { if (onSuccessHandler) { onSuccessHandler(response); } else { defaultApiSuccessHandler(response); } }) .catch((error: AxiosError) => { if (onErrorHandler) { onErrorHandler(error); } else { defaultApiErrorHandler(error); } }); } function requestProjectCreation( projectDetails: Project, onSuccessHandler?: (response: AxiosResponse) => void, onErrorHandler?: (error: AxiosError) => void ): void { axiosInstance .post("/entrepreneur/projects/request", projectDetails.toObject()) .then((response) => { if (onSuccessHandler) { onSuccessHandler(response); } else { defaultApiSuccessHandler(response); } }) .catch((error: AxiosError) => { if (onErrorHandler) { onErrorHandler(error); } else { defaultApiErrorHandler(error); } }); } function addSectionCell( sectionCellDetails: SectionCell, onSuccessHandler?: (response: AxiosResponse) => void, onErrorHandler?: (error: AxiosError) => void ): void { axiosInstance .post("/entrepreneur/sectionCells", sectionCellDetails.toObject()) .then((response) => { if (onSuccessHandler) { onSuccessHandler(response); } else { defaultApiSuccessHandler(response); } }) .catch((error: AxiosError) => { if (onErrorHandler) { onErrorHandler(error); } else { defaultApiErrorHandler(error); } }); } function modifySectionCell( sectionCellId: number, sectionCellDetails: SectionCell, onSuccessHandler?: (response: AxiosResponse) => void, onErrorHandler?: (error: AxiosError) => void ): void { axiosInstance .put(`/entrepreneur/sectionCells/${sectionCellId}`, sectionCellDetails) .then((response) => { if (onSuccessHandler) { onSuccessHandler(response); } else { defaultApiSuccessHandler(response); } }) .catch((error: AxiosError) => { if (onErrorHandler) { onErrorHandler(error); } else { defaultApiErrorHandler(error); } }); } function removeSectionCell( sectionCellId: number, onSuccessHandler?: (response: AxiosResponse) => void, onErrorHandler?: (error: AxiosError) => void ): void { axiosInstance .delete(`/entrepreneur/sectionCells/${sectionCellId}`) .then((response) => { if (onSuccessHandler) { onSuccessHandler(response); } else { defaultApiSuccessHandler(response); } }) .catch((error: AxiosError) => { if (onErrorHandler) { onErrorHandler(error); } else { defaultApiErrorHandler(error); } }); } export { getEntrepreneurProjectId, requestProjectCreation, addSectionCell, modifySectionCell, removeSectionCell, };