36 lines
1.9 KiB
TypeScript
36 lines
1.9 KiB
TypeScript
import { api } from "src/boot/axios";
|
|
import type { PayPeriodOverview } from "../types/timesheet-approval-pay-period-overview-interface";
|
|
import type { PayPeriod } from "src/modules/shared/types/pay-period-interface";
|
|
import type { PayPeriodEmployeeDetails } from "../types/timesheet-approval-pay-period-employee-details-interface";
|
|
import type { PayPeriodReportFilters } from "../types/timesheet-approval-pay-period-report-interface";
|
|
|
|
export const timesheetApprovalService = {
|
|
getPayPeriodByDate: async (date_string: string): Promise<PayPeriod> => {
|
|
const response = await api.get(`pay-periods/date/${date_string}`);
|
|
return response.data;
|
|
},
|
|
|
|
getPayPeriodByYearAndPeriodNumber: async (year: number, period_number: number): Promise<PayPeriod> => {
|
|
const response = await api.get(`pay-periods/${year}/${period_number}`);
|
|
return response.data;
|
|
},
|
|
|
|
|
|
getPayPeriodEmployeeOverviews: async (year: number, period_number: number, supervisor_email: string): Promise<PayPeriodOverview> => {
|
|
// TODO: REMOVE MOCK DATA PEFORE PUSHING TO PROD
|
|
const response = await api.get(`pay-periods/${year}/${period_number}/${supervisor_email}`);
|
|
console.log('pay period data: ', response.data);
|
|
return response.data;
|
|
},
|
|
|
|
getTimesheetsByPayPeriodAndEmail: async (year: number, period_no: number, email: string): Promise<PayPeriodEmployeeDetails> => {
|
|
const response = await api.get('timesheets', { params: { year, period_no, email, }});
|
|
console.log('employee details: ', response.data);
|
|
return response.data;
|
|
},
|
|
|
|
getTimesheetApprovalCSVReport: async (year: number, period_number: number, report_filters?: PayPeriodReportFilters) => {
|
|
const response = await api.get(`csv/${year}/${period_number}`, { params: { report_filters, }});
|
|
return response.data;
|
|
},
|
|
}; |