|
- "use server";
-
- // import { serverFetchWithNoContent } from '@/app/utils/fetchUtil';
- // import { BASE_API_URL } from "@/config/api";
- import { serverFetchWithNoContent } from "../../../utils/fetchUtil";
- import { BASE_API_URL } from "../../../../config/api";
-
- export interface M18ImportPoForm {
- modifiedDateFrom: string;
- modifiedDateTo: string;
- dDateFrom: string;
- dDateTo: string;
- }
-
- export interface M18ImportDoForm {
- modifiedDateFrom: string;
- modifiedDateTo: string;
- dDateFrom: string;
- dDateTo: string;
- }
-
- export interface M18ImportPqForm {
- modifiedDateFrom: string;
- modifiedDateTo: string;
- }
-
- export interface M18ImportMasterDataForm {
- modifiedDateFrom: string;
- modifiedDateTo: string;
- }
-
- export interface M18ImportTestingForm {
- po: M18ImportPoForm;
- do: M18ImportDoForm;
- pq: M18ImportPqForm;
- masterData: M18ImportMasterDataForm;
- }
-
- export const testM18ImportPo = async (data: M18ImportPoForm) => {
- return serverFetchWithNoContent(`${BASE_API_URL}/m18/po`, {
- method: "POST",
- body: JSON.stringify(data),
- headers: { "Content-Type": "application/json" },
- });
- };
-
- export const testM18ImportDo = async (data: M18ImportDoForm) => {
- return serverFetchWithNoContent(`${BASE_API_URL}/m18/do`, {
- method: "POST",
- body: JSON.stringify(data),
- headers: { "Content-Type": "application/json" },
- });
- };
-
- export const testM18ImportPq = async (data: M18ImportPqForm) => {
- const token = localStorage.getItem("accessToken");
-
- return serverFetchWithNoContent(`${BASE_API_URL}/m18/pq`, {
- method: "POST",
- body: JSON.stringify(data),
- headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, },
-
- });
- };
-
- export const testM18ImportMasterData = async (
- data: M18ImportMasterDataForm,
- ) => {
- return serverFetchWithNoContent(`${BASE_API_URL}/m18/master-data`, {
- method: "POST",
- body: JSON.stringify(data),
- headers: { "Content-Type": "application/json" },
- });
- };
-
- export const triggerScheduler = async (type: 'po' | 'do1' | 'do2' | 'master-data' | 'refresh-cron') => {
- try {
- // IMPORTANT: 'refresh-cron' is a direct endpoint /api/scheduler/refresh-cron
- // Others are /api/scheduler/trigger/{type}
- const path = type === 'refresh-cron'
- ? 'refresh-cron'
- : `trigger/${type}`;
-
- const url = `${BASE_API_URL}/scheduler/${path}`;
-
- console.log("Fetching URL:", url);
-
- const response = await serverFetchWithNoContent(url, {
- method: "GET",
- cache: "no-store",
- });
-
- if (!response.ok) throw new Error(`Failed: ${response.status}`);
-
- return await response.text();
- } catch (error) {
- console.error("Scheduler Action Error:", error);
- return null;
- }
- };
-
- export const refreshCronSchedules = async () => {
- // Simply reuse the triggerScheduler logic to avoid duplication
- // or call serverFetch directly as shown below:
- try {
- const response = await serverFetchWithNoContent(`${BASE_API_URL}/scheduler/refresh-cron`, {
- method: "GET",
- cache: "no-store",
- });
-
- if (!response.ok) throw new Error(`Failed to refresh: ${response.status}`);
-
- return await response.text();
- } catch (error) {
- console.error("Refresh Cron Error:", error);
- return "Refresh failed. Check server logs.";
- }
- };
|