mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 15:30:56 +00:00
84 lines
2.6 KiB
TypeScript
84 lines
2.6 KiB
TypeScript
import { api as client } from "../auth/http";
|
|
import { unwrap } from "@/utils/endpoint";
|
|
import { URL_CONSTANTS } from "@/constants/URLS";
|
|
import type {
|
|
IOverviewBillingTab,
|
|
IOverviewBookingsTab,
|
|
IOverviewClearanceTab,
|
|
IOverviewContractsTab,
|
|
IOverviewCustomersTab,
|
|
IOverviewDashboard,
|
|
IOverviewFleetTab,
|
|
IOverviewOperationsTab,
|
|
IOverviewStaffTab,
|
|
OverviewRange,
|
|
} from "@/types/overview";
|
|
|
|
const O = URL_CONSTANTS.OVERVIEW;
|
|
|
|
export const overviewService = {
|
|
getDashboard: async (range?: OverviewRange): Promise<IOverviewDashboard> => {
|
|
const response = await client.get<IOverviewDashboard>(O.BASE, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getBookingsTab: async (range?: OverviewRange): Promise<IOverviewBookingsTab> => {
|
|
const response = await client.get<IOverviewBookingsTab>(O.BOOKINGS, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getContractsTab: async (range?: OverviewRange): Promise<IOverviewContractsTab> => {
|
|
const response = await client.get<IOverviewContractsTab>(O.CONTRACTS, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getBillingTab: async (range?: OverviewRange): Promise<IOverviewBillingTab> => {
|
|
const response = await client.get<IOverviewBillingTab>(O.BILLING, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getOperationsTab: async (
|
|
range?: OverviewRange,
|
|
): Promise<IOverviewOperationsTab> => {
|
|
const response = await client.get<IOverviewOperationsTab>(O.OPERATIONS, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getFleetTab: async (range?: OverviewRange): Promise<IOverviewFleetTab> => {
|
|
const response = await client.get<IOverviewFleetTab>(O.FLEET, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
/** Document + invoice queues; not range-scoped — these are open work items. */
|
|
getClearanceTab: async (): Promise<IOverviewClearanceTab> => {
|
|
const response = await client.get<IOverviewClearanceTab>(O.CLEARANCE);
|
|
return unwrap(response);
|
|
},
|
|
|
|
getCustomersTab: async (range?: OverviewRange): Promise<IOverviewCustomersTab> => {
|
|
const response = await client.get<IOverviewCustomersTab>(O.CUSTOMERS, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
|
|
getStaffTab: async (range?: OverviewRange): Promise<IOverviewStaffTab> => {
|
|
const response = await client.get<IOverviewStaffTab>(O.STAFF, {
|
|
params: range ? { range } : undefined,
|
|
});
|
|
return unwrap(response);
|
|
},
|
|
};
|