import { api } from "src/boot/axios"; import type {Timesheet} from "src/modules/timesheets/types/timesheet-interface"; import type { CreateShiftPayload, CreateWeekShiftPayload } from "../types/timesheet-shifts-payload-interface"; import type { PayPeriod } from "src/modules/shared/types/pay-period-interface"; import type { PayPeriodEmployeeDetails } from "src/modules/timesheet-approval/types/timesheet-approval-pay-period-employee-details-interface"; import type { PayPeriodOverview } from "src/modules/timesheet-approval/types/timesheet-approval-pay-period-overview-interface"; import type { PayPeriodReportFilters } from "src/modules/timesheet-approval/types/timesheet-approval-pay-period-report-interface"; export const timesheetTempService = { //GET getTimesheetsByEmail: async ( email: string, offset = 0): Promise => { const response = await api.get(`/timesheets/${encodeURIComponent(email)}`, {params: offset ? { offset } : undefined}); return response.data as Timesheet; }, //POST createTimesheetShifts: async ( email: string, shifts: CreateShiftPayload[], offset = 0): Promise => { const payload: CreateWeekShiftPayload = { shifts }; const response = await api.post(`/timesheets/shifts/${encodeURIComponent(email)}`, payload, { params: offset ? { offset }: undefined }); return response.data as Timesheet; }, getPayPeriodByDate: async (date_string: string): Promise => { const response = await api.get(`pay-periods/date/${date_string}`); return response.data; }, getPayPeriodByYearAndPeriodNumber: async (year: number, period_number: number): Promise => { const response = await api.get(`pay-periods/${year}/${period_number}`); return response.data; }, getPayPeriodEmployeeOverviews: async (year: number, period_number: number, supervisor_email: string): Promise => { // 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 => { 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; }, };