pha-hermes 1.27.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/salesforce/accounts/accounts.d.ts +2 -1
- package/dist/pha-hermes.cjs.development.js +3 -2
- package/dist/pha-hermes.cjs.development.js.map +1 -1
- package/dist/pha-hermes.cjs.production.min.js +1 -1
- package/dist/pha-hermes.cjs.production.min.js.map +1 -1
- package/dist/pha-hermes.esm.js +3 -2
- package/dist/pha-hermes.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/api/salesforce/accounts/accounts.ts +20 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/salesforce/auth/auth.ts","../src/api/salesforce/timesheet/timesheetClient.ts","../src/api/salesforce/practitioner/practitionerClient.ts","../src/api/salesforce/workorder/workorderClient.ts","../src/api/salesforce/payperiod/payperiodClient.ts","../src/api/salesforce/expenses/expenseClient.ts","../src/api/salesforce/prices/priceClient.ts","../src/api/salesforce/accounts/accounts.ts","../src/api/salesforce/apiClient.ts","../src/api/liphe_legacy/auth/authClient.ts","../src/api/liphe_legacy/practitioner/practitionerClient.ts","../src/api/liphe_legacy/contract_request_period/contractRequestPeriodClient.ts","../src/api/liphe_legacy/lipheApiClient.ts","../src/models/index.ts","../src/models/regions.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\nimport FormData from 'form-data'\n\nexport class SFAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private refreshToken: string | undefined = undefined\n private tokenRefreshPromise: Promise<string> | null = null\n\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl: string) {\n this.axiosTokenInstance.defaults.baseURL = baseUrl\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(\n clientId: string,\n clientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n // If the error is 401 and we haven't exceeded max retries\n if (error.response?.status === 401 && originalRequest._retryCount < 3) {\n originalRequest._retryCount++\n\n try {\n // Use existing token refresh if one is in progress\n if (!this.tokenRefreshPromise) {\n const newClientCredentials = await onTokenRefresh?.()\n const newClientId = newClientCredentials?.clientId || clientId\n const newClientSecret =\n newClientCredentials?.clientSecret || clientSecret\n this.tokenRefreshPromise = this.postToken(newClientId, newClientSecret)\n }\n\n const newToken = await this.tokenRefreshPromise\n // Clear the refresh promise after it completes\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${newToken}`\n originalRequest.headers['Authorization'] = `Bearer ${newToken}`\n\n originalRequest.timeout = 5000\n\n return await Promise.race([\n this.authenticatedAxiosInstance(originalRequest),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error('Retry request timeout')),\n originalRequest.timeout\n )\n )\n ])\n } catch (refreshError) {\n // Clear the refresh promise if it fails\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\n )\n this.token = response?.data?.['access_token']\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\n return this.token\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { TimesheetDayEntry } from '../../../models'\nimport { SF_API_VERSION } from '../../../index'\nimport FormData from 'form-data'\n\ninterface SFTimesheetHourField {\n Id: string\n Date__c: Date\n Callback__c: number\n HoursEBAdjusted__c: number\n Misc__c: number\n OT1__c: number\n OT2__c: number\n OnCall__c: number\n Misc1__c: number\n Misc_1_Hours__c: number\n Misc_2_Hours__c: number\n Misc_3_Hours__c: number\n Misc_4_Hours__c: number\n Stat1__c: number\n Stat2__c: number\n In_Charge__c: number\n Shift_Travel_Stipend__c: number\n LastModifiedDate: Date\n}\ntype SFTimesheetHourFieldKeys = (keyof SFTimesheetHourField)[]\n\nexport class SFTimesheetClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\n const response = await this.axiosInstance.patch(url, {\n Date__c: timesheet.date,\n Callback__c: timesheet.callbackHours,\n HoursEBAdjusted__c: timesheet.regularHours,\n Misc__c: timesheet.miscHours,\n OT1__c: timesheet.overtime1Hours,\n OT2__c: timesheet.overtime2Hours,\n OnCall__c: timesheet.onCallHours,\n Misc1__c: timesheet.misc1HoursA,\n Misc_1_Hours__c: timesheet.misc1HoursB,\n Misc_2_Hours__c: timesheet.misc2Hours,\n Misc_3_Hours__c: timesheet.misc3Hours,\n Misc_4_Hours__c: timesheet.misc4Hours,\n Stat1__c: timesheet.stat1Hours,\n Stat2__c: timesheet.stat2Hours,\n In_Charge__c: timesheet.inChargeHours,\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\n })\n\n if (![200, 204, 304].includes(response.status))\n throw new Error(`got error status code ${response.status}`)\n } catch (error) {\n console.error('Error Updating Timesheet Hour: ', error.message)\n }\n }\n\n async getTimesheetIds(\n workorderId: string,\n periodStartDate?: Date,\n periodEndDate?: Date\n ): Promise<string[]> {\n // Find all timesheet Ids that belong to this WO\n const url = `/services/data/${SF_API_VERSION}/query`\n let query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'`\n try {\n if (periodStartDate && periodEndDate) {\n query += `\n AND PayPeriodStartDate__c <= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND PayPeriodEndDate__c >= ${new Date(periodEndDate).toISOString().substring(0, 10)}\n `\n }\n } catch (error) {\n console.error('Invalid period dates', error)\n }\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(record => record.Id)\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async getTimesheetHours(\n workorderId: string,\n fields?: SFTimesheetHourFieldKeys[],\n periodStartDate?: Date,\n periodEndDate?: Date\n ): Promise<TimesheetDayEntry[]> {\n const timesheetIds = await this.getTimesheetIds(workorderId, periodStartDate, periodEndDate)\n\n const allHours: SFTimesheetHourField[] = []\n const url = `/services/data/${SF_API_VERSION}/query`\n for (const timesheetId of timesheetIds) {\n let query = `\n SELECT ${fields?.join(',') || 'FIELDS(STANDARD)'}\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'`\n try {\n if (fields?.length && periodStartDate && periodEndDate) {\n query += `\n AND Date__c >= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND Date__c <= ${new Date(periodEndDate).toISOString().substring(0, 10)}`\n }\n\n const {\n data: { records }\n } = await this.axiosInstance.get<{ records: SFTimesheetHourField[] }>(url, {\n params: { q: query }\n })\n allHours.push(...records)\n } catch (err) {\n console.error(`Failed to fetch`, err)\n }\n }\n return allHours.map(toTimesheetDayEntry)\n }\n\n async getPayPeriods(): Promise<any> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriods = []\n\n for (const payPeriod of data.data.records) {\n payPeriods.push({\n name: payPeriod.Name,\n startDate: payPeriod.StartDate__c,\n endDate: payPeriod.EndDate__c\n })\n }\n\n return payPeriods\n }\n\n async uploadImageToTimesheet(\n file: Buffer,\n filename: string,\n timesheetId: string\n ): Promise<void> {\n try {\n const form = new FormData()\n form.append(\n 'entity_content',\n JSON.stringify({\n Title: filename,\n PathOnClient: filename\n }),\n { contentType: 'application/json' }\n )\n\n form.append('VersionData', file, {\n filename,\n contentType: 'application/octet-stream'\n })\n const uploadRes = await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentVersion`,\n form,\n { headers: form.getHeaders() }\n )\n\n const versionId = uploadRes.data.id\n\n //get ContentDocumentId\n const { data } = await this.axiosInstance.get(\n `/services/data/${SF_API_VERSION}/query`,\n {\n params: {\n q: `SELECT ContentDocumentId FROM ContentVersion WHERE Id = '${versionId}'`\n }\n }\n )\n const contentDocumentId = data.records[0].ContentDocumentId\n\n await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentDocumentLink`,\n {\n ContentDocumentId: contentDocumentId,\n LinkedEntityId: timesheetId,\n ShareType: 'V',\n Visibility: 'AllUsers'\n }\n )\n } catch (err) {\n console.error('Salesforce error response:', err?.response?.data)\n console.error('Error uploading and linking image:', err?.message)\n }\n }\n}\n\nfunction toTimesheetDayEntry(raw: SFTimesheetHourField): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner, PractitionerExport, Role } from '../../../models'\nimport { SF_API_VERSION } from '../../../index'\n\nexport class SFPractitionerClient {\n private PRACTITIONER_FIELDS = {\n default: ['Id', 'FirstName__c', 'LastName__c', 'Email__c', 'StaffID__c', 'CreatedDate'],\n export: [\n 'Id',\n 'FirstName__c',\n 'LastName__c',\n 'Email__c',\n 'StaffID__c',\n 'CreatedDate',\n 'DaytimePhone__c',\n 'Status__c',\n 'ProfessionalDesignation__c',\n 'CANSocialInsuranceNumber__c',\n 'Date_of_Hire__c',\n 'DateApplied__c',\n 'Birthdate__c',\n 'MailingStreetAddress__c',\n 'MailingCity__c',\n 'MailingStateProvince__c',\n 'MailingZipPostalCode__c'\n ]\n } as const\n\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(options: {\n createdAt?: string\n limit?: number\n forExport: true\n }): Promise<PractitionerExport[]>\n\n async fetchPractitioners(options?: {\n createdAt?: string\n limit?: number\n forExport?: false | undefined\n }): Promise<Practitioner[]>\n\n async fetchPractitioners(options?: {\n createdAt?: string\n limit?: number\n forExport?: boolean\n }): Promise<Practitioner[] | PractitionerExport[]> {\n try {\n const conditions: string[] = [`Status__c = 'Active'`]\n if (options?.createdAt) {\n conditions.push(`CreatedDate > ${options.createdAt}`)\n }\n const whereClause = conditions.length ? `WHERE ${conditions.join(' AND ')}` : ''\n const limitClause =\n typeof options?.limit === 'number' && options.limit > 0\n ? `LIMIT ${Math.floor(options.limit)}`\n : ''\n let url = `/services/data/${SF_API_VERSION}/query`\n const fields = (\n options?.forExport\n ? this.PRACTITIONER_FIELDS.export\n : this.PRACTITIONER_FIELDS.default\n ).join(', ')\n\n const query = `\n SELECT ${fields}\n FROM Personnel__c\n ${whereClause}\n ORDER BY CreatedDate ASC, StaffID__c ASC\n ${limitClause}\n `\n const records = []\n let done = false\n do {\n const {\n data: { records: pageRecords, nextRecordsUrl, done: isDone }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n records.push(...pageRecords)\n done = isDone\n url = nextRecordsUrl\n } while (!done)\n\n return options?.forExport\n ? records.map(toPractitionerExport)\n : records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n\n async fetchPractitionerByEmail(email: string): Promise<Practitioner | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c, CreatedDate\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '${email}'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n if (records.length === 0) {\n return null\n }\n return toPractitioner(records[0])\n } catch (error) {\n console.error('Error fetching practitioner by email:', error)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n .catch(error => {\n console.error('Error fetching roles: ', error.message)\n throw error\n })\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c,\n createdAt: raw.CreatedDate ? raw.CreatedDate.replace(/\\+0000$/, 'Z') : undefined\n }\n}\n\nfunction toPractitionerExport(raw: any): PractitionerExport {\n return {\n ...toPractitioner(raw),\n phone: raw.DaytimePhone__c,\n status: raw.Status__c,\n professionalDesignation: raw.ProfessionalDesignation__c,\n SIN: raw.CANSocialInsuranceNumber__c,\n hiringDate: raw.Date_of_Hire__c,\n dateApplied: raw.DateApplied__c,\n birthdate: raw.Birthdate__c,\n mailingStreetAddress: raw.MailingStreetAddress__c,\n mailingCity: raw.MailingCity__c,\n mailingProvince: raw.MailingStateProvince__c,\n mailingZip: raw.MailingZipPostalCode__c\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../../../index'\nimport { Workorder } from '../../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getWorkordersForPractitioner(\n practitionerId?: string,\n options?: { startDate?: Date; endDate?: Date; provinces?: string[] }\n ): Promise<Workorder[]> {\n try {\n const filters: string[] = []\n if (practitionerId) {\n filters.push(`Personnel__c = '${practitionerId}'`)\n }\n if (options?.startDate) {\n const isoStart = options.startDate.toISOString().split('T')[0]\n filters.push(`EndDate__c >= ${isoStart}`)\n }\n if (options?.endDate) {\n const isoEnd = options.endDate.toISOString().split('T')[0]\n filters.push(`startdate__c <= ${isoEnd}`)\n }\n\n if (options?.provinces?.length) {\n const provincesList = options?.provinces?.map(p => `'${p}'`).join(', ')\n filters.push(`Region__c IN (${provincesList})`)\n }\n const whereClause = filters.length ? `WHERE ${filters.join(' AND ')}` : ''\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id,\n Region__c,\n Name,\n HospitalID__c,\n HospitalName__c,\n ProfessionalDesignation__c,\n Personnel__c,\n startdate__c,\n EndDate__c,\n CreatedDate,\n LastModifiedDate,\n Unit__c,\n HealthAuthority__c,\n UnitPrice__r.Price__c,\n TravelDate__c,\n ReturnDate__c\n FROM WorkOrder__c ${whereClause}`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) => {\n return records.map(\n (record): Workorder => ({\n id: record.Id,\n name: record.Name,\n establishmentId: record.HospitalID__c,\n region: record.Region__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate),\n unit: formatString(record.Unit__c),\n externalUnitId: formatId(record.Unit__c),\n healthAuthority: formatString(record.HealthAuthority__c),\n externalHealthAuthorityId: formatId(record.HealthAuthority__c),\n price: record.UnitPrice__r.Price__c,\n travelInTime: new Date(record.TravelDate__c),\n travelOutTime: new Date(record.ReturnDate__c)\n })\n )\n })\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}\n\nconst formatString = (unformattedUnit: string) =>\n !unformattedUnit ? '' : unformattedUnit.replace(/<[^>]*>/g, '').trim()\n\nconst formatId = (htmlString: string): string => {\n if (!htmlString) return ''\n\n const hrefMatch = htmlString.match(/href=\"\\/([^\"]+)\"/i)\n return hrefMatch ? hrefMatch[1] : ''\n}\n","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../../../index'\nimport { Period } from '../../../models'\n\nexport class SFPayPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPayPeriodAndTimesheetIdsForWorkorder(workorderID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderID}'`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodIds = []\n\n for (const payPeriods of data.data.records) {\n payPeriodIds.push({\n timesheetId: payPeriods.Id,\n payPeriodId: payPeriods.PayPeriod__c\n })\n }\n\n return payPeriodIds\n }\n\n async getPayPeriodDatesForPayPeriodIds(payPeriodIDs: string[]): Promise<Period[]> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN ${listOfIdsForQuery(payPeriodIDs)}`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodDates = []\n\n for (const payPeriod of data.data.records) {\n payPeriodDates.push({\n payPeriodId: payPeriod.Id,\n startDate: new Date(payPeriod.StartDate__c),\n endDate: new Date(payPeriod.EndDate__c)\n })\n }\n\n return payPeriodDates\n }\n}\n\nconst listOfIdsForQuery = (payPeriodIDs: string[]) => `('${payPeriodIDs.join(\"', '\")}')`\n","import { AxiosInstance } from 'axios'\nimport { Expense } from '../../../models/expense'\nimport { SF_API_VERSION } from '../../../index'\n\ntype FrontendExpense = {\n workorderPeriodId: string\n submittedValue: string\n type: 'Other' | 'Lodging' | 'Transportation' | 'Travel (Hours)' | 'Per diem' | 'Meals'\n}\n\nconst EXPENSE_FIELD_MAP = {\n Lodging: 'StipendTotalOverride__c',\n 'Per diem': 'Per_Diem_Total__c',\n Other: 'Reimburseable_Expenses__c',\n Transportation: 'TaxiAmount__c'\n} as const\n\ntype SupportedExpenseType = keyof typeof EXPENSE_FIELD_MAP\n\nexport class SFExpenseClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchExpenseTotals(timesheetId: string): Promise<Expense | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/Timesheet__c/${timesheetId}`\n const { data } = await this.axiosInstance.get(url, {\n params: {\n fields: 'Reimburseable_Expenses__c,Per_Diem_Total__c,StipendTotalOverride__c,TaxiAmount__c'\n }\n })\n if (!data) return null\n return toExpense(data)\n } catch (err) {\n console.error('Failed to fetch expense totals', err)\n throw err\n }\n }\n\n private async patchTimesheet(timesheetId: string, body: Record<string, number>): Promise<void> {\n const url = `/services/data/${SF_API_VERSION}/sobjects/Timesheet__c/${timesheetId}`\n const res = await this.axiosInstance.patch(url, body)\n if (![200, 204, 304].includes(res.status)) {\n throw new Error(`Unexpected status ${res.status}`)\n }\n }\n\n async updateExpense(expense: FrontendExpense): Promise<void> {\n const timesheetId = expense.workorderPeriodId\n const submittedValue = Number(expense.submittedValue)\n const field = EXPENSE_FIELD_MAP[expense.type as SupportedExpenseType]\n if (!field) {\n throw new Error(`Unsupported expense type: ${expense.type}`)\n }\n\n await this.patchTimesheet(timesheetId, { [field]: submittedValue })\n }\n}\n\nfunction toExpense(raw: any): Expense {\n return {\n reimbursable: Number(raw.Reimburseable_Expenses__c ?? 0),\n perDiem: Number(raw.Per_Diem_Total__c ?? 0),\n lodging: Number(raw.StipendTotalOverride__c ?? 0),\n transportation: Number(raw.TaxiAmount__c ?? 0)\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Price } from '../../../models/price'\nimport { SF_API_VERSION } from '../../../index'\n\nexport class SFPriceClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPriceListByWorkorderId(workorderId?: string): Promise<Price> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT UnitPrice__r.Price__r.Id,\n UnitPrice__r.Price__r.Name,\n UnitPrice__r.Price__r.MileageBillingRate__c,\n UnitPrice__r.Price__r.MileageWageRate__c,\n UnitPrice__r.Price__r.BillingRate__c,\n UnitPrice__r.Price__r.WageRate__c,\n UnitPrice__r.Price__r.Overtime1BillingRate__c,\n UnitPrice__r.Price__r.Overtime1WageRate__c,\n UnitPrice__r.Price__r.Overtime2BillingRate__c,\n UnitPrice__r.Price__r.Overtime2WageRate__c,\n UnitPrice__r.Price__r.CallBackBillingRate__c,\n UnitPrice__r.Price__r.CallBackWageRate__c,\n UnitPrice__r.Price__r.OnCallBillingRate__c,\n UnitPrice__r.Price__r.OnCallWageRate__c,\n UnitPrice__r.Price__r.Additional_Billing_Information__c,\n UnitPrice__r.Price__r.Additional_Wage_Information__c\n FROM WorkOrder__c WHERE Id = '${workorderId}' `\n\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) => {\n return records.map(\n (record): Price => ({\n id: record?.UnitPrice__r?.Price__r.Id,\n name: record?.UnitPrice__r?.Price__r.Name,\n mileageBillingRate:\n record?.UnitPrice__r?.Price__r.MileageBillingRate__c,\n mileageWageRate: record?.UnitPrice__r?.Price__r.MileageWageRate__c,\n regularBillingRate: record?.UnitPrice__r?.Price__r.BillingRate__c,\n regularWageRate: record?.UnitPrice__r?.Price__r.WageRate__c,\n overtime1BillingRate:\n record?.UnitPrice__r?.Price__r.Overtime1BillingRate__c,\n overtime1WageRate: record?.UnitPrice__r?.Price__r.Overtime1WageRate__c,\n overtime2BillingRate:\n record?.UnitPrice__r?.Price__r.Overtime2BillingRate__c,\n overtime2WageRate: record?.UnitPrice__r?.Price__r.Overtime2WageRate__c,\n callbackBillingRate:\n record?.UnitPrice__r?.Price__r.CallBackBillingRate__c,\n callbackWageRate: record?.UnitPrice__r?.Price__r.CallBackWageRate__c,\n onCallBillingRate: record?.UnitPrice__r?.Price__r.OnCallBillingRate__c,\n onCallWageRate: record?.UnitPrice__r?.Price__r.OnCallWageRate__c,\n additionalBillingInfo:\n record?.UnitPrice__r?.Price__r.Additional_Billing_Information__c,\n additionalWageInfo:\n record?.UnitPrice__r?.Price__r.Additional_Wage_Information__c\n })\n )\n })\n } catch (error) {\n console.error('Error fetching Price list: ', error.message)\n throw error\n }\n }\n}\n","import { AxiosInstance } from \"axios\"\n\nexport interface Account {\n id: string\n name: string\n accountTypeName: AccountType\n regionName: string\n geographicalAreaName: string | null\n address: string | null\n city: string | null\n province: string | null\n postalCode: string | null\n phone: string | null\n phone2: string | null\n cellular: string | null\n fax: string | null\n email: string\n lang: 'eng' | 'fra'\n}\n\nexport interface HealthAuthority extends Account {\n accountTypeName: 'healthAuthority'\n children: Establishment[]\n}\n\nexport interface Establishment extends Account {\n accountTypeName: 'establishment'\n}\n\ntype AccountType = 'healthAuthority' | 'establishment'\n\nconst ACCOUNT_FIELDS = [\n 'Id',\n 'Name',\n 'BillingCity',\n 'BillingState',\n 'BillingPostalCode',\n 'BillingCountry',\n 'BillingAddress',\n 'Phone',\n 'Fax',\n 'Type'\n] as const\n\nexport class SFAccounts {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchAccounts<T extends Account>(type: AccountType, options?: { parentId?: string, active?: boolean, failfast?: boolean }): Promise<T[]> {\n try {\n let accountType: 'Health Authority' | 'Hospital'\n switch (type) {\n case 'healthAuthority':\n accountType = 'Health Authority'\n break\n case 'establishment':\n accountType = 'Hospital'\n }\n\n let query = `SELECT ${ACCOUNT_FIELDS.join(',')} FROM Account WHERE Type = '${accountType}'`\n if (options?.parentId) query += ` AND ParentId = '${options.parentId}'`\n if (options?.active) query += ` AND Active__c = true`\n\n let records = []\n let done = false\n let url = `/services/data/v57.0/query`\n do {\n const { data: { records: pageRecords, nextRecordsUrl, done: isDone } } = await this.axiosInstance.get(url, { params: { q: query } })\n records.push(...pageRecords)\n done = isDone\n url = nextRecordsUrl\n } while (!done)\n const accounts: Account[] = records.map(record => this.buildAccount(record))\n\n for (const i in accounts)\n if (accounts[i].accountTypeName === 'healthAuthority')\n (accounts[i] as HealthAuthority).children = await this.fetchAccounts<Establishment>('establishment', { parentId: accounts[i].id, active: options?.active })\n\n return accounts as T[]\n } catch (error) {\n console.error(`Error fetching ${type} accounts: `, error.message)\n if (options?.failfast)\n throw error\n return []\n }\n }\n private buildAccount(record: any): Account {\n let accountType: AccountType\n\n switch (record.Type) {\n case 'Health Authority':\n accountType = 'healthAuthority'\n break\n case 'Hospital':\n accountType = 'establishment'\n }\n\n const fields = ['street', 'city', 'state', 'country', 'postalCode']\n const address = fields\n .map(field => record.BillingAddress?.[field]?.trim() ?? '')\n .filter(Boolean)\n .join('\\n')\n\n return {\n id: record.Id,\n name: record.Name,\n address: address,\n city: record.BillingCity,\n province: record.BillingState,\n postalCode: record.BillingPostalCode,\n geographicalAreaName: record.BillingGeocodeAccuracy,\n phone: record.Phone,\n fax: record.Fax,\n regionName: record.RegionName,\n accountTypeName: accountType,\n email: null,\n phone2: null,\n cellular: null,\n lang: 'eng'\n }\n }\n}","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\nimport { SFPayPeriodClient } from './payperiod/payperiodClient'\nimport { SFExpenseClient } from './expenses/expenseClient'\nimport { SFPriceClient } from './prices/priceClient'\nimport { SFAccounts } from './accounts/accounts'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n payPeriodClient: SFPayPeriodClient\n expenseClient: SFExpenseClient\n priceClient: SFPriceClient\n accountsClient: SFAccounts\n\n async init(\n baseUrl: string,\n sfClientId: string,\n sfClientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL = baseUrl\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n this.payPeriodClient = new SFPayPeriodClient(this.axiosInstance)\n this.expenseClient = new SFExpenseClient(this.axiosInstance)\n this.priceClient = new SFPriceClient(this.axiosInstance)\n this.accountsClient = new SFAccounts(this.axiosInstance)\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret, onTokenRefresh)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n if (!this.instance) {\n throw new Error('Salesforce Api client not initialized')\n }\n return this.instance\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport axiosRetry from 'axios-retry'\nimport FormData from 'form-data'\n\nexport class LipheAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private tokenRefreshPromise: Promise<string> | null = null\n private email: string\n private password: string\n private type: string\n\n constructor(\n authenticatedAxiosInstance: AxiosInstance,\n baseUrl: string,\n email: string,\n password: string,\n type: 'user' | 'client' = 'user'\n ) {\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n\n axiosRetry(this.axiosTokenInstance, {\n retries: 10,\n retryDelay: retryCount => {\n return Math.min(1000 * Math.pow(2, retryCount - 1), 30000)\n }\n })\n\n this.email = email\n this.password = password\n this.type = type\n this.axiosTokenInstance.defaults.baseURL = baseUrl\n }\n\n async initializeAuth() {\n const token = await this.login()\n\n this.authenticatedAxiosInstance.defaults.headers.common['X-Auth-Token'] = token\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n if (error.response?.status === 401 && originalRequest._retryCount < 1) {\n originalRequest._retryCount++\n try {\n if (!this.tokenRefreshPromise) {\n this.tokenRefreshPromise = this.login()\n }\n const newToken = await this.tokenRefreshPromise\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['X-Auth-Token'] =\n newToken\n\n return await this.authenticatedAxiosInstance(originalRequest)\n } catch (refreshError) {\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n private async login(): Promise<string> {\n const form = new FormData()\n form.append('email', this.email)\n form.append('password', this.password)\n form.append('type', this.type)\n\n const response = await this.axiosTokenInstance.post('v2/signin', form, {\n headers: form.getHeaders()\n })\n const token = response?.data?.data?.token\n if (!token) {\n throw new Error('Authentication failed: no token return')\n }\n this.token = token\n return token\n }\n}\n","import type { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../../models'\n\ninterface LiphePractitioner {\n id: number\n firstname: string\n lastname: string\n email: string\n communicationMode?: number\n}\n\nexport class LiphePractitionerClient {\n private axios: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axios = axiosInstance\n }\n async fetchAllPractitioners(agencyId: number = 1): Promise<Practitioner[]> {\n let practitioners: LiphePractitioner[] = []\n let page = 1\n let nextPage = true\n\n while (nextPage) {\n const response = await this.axios.get('v2/employees', {\n params: {\n agency_id: agencyId,\n page\n }\n })\n const data = response?.data?.data\n if (!data?.data || !Array.isArray(data.data)) {\n throw new Error('Unexpected responses.')\n }\n\n const pagePractitioners = data.data.map(\n (p: any): LiphePractitioner => ({\n id: p.id,\n firstname: p.firstname,\n lastname: p.lastname,\n email: p.email,\n communicationMode: p.communicationMode\n })\n )\n\n practitioners.push(...pagePractitioners)\n nextPage = Boolean(data.next_page_url)\n page++\n }\n return practitioners.map(p => ({\n id: String(p.id),\n firstName: p.firstname,\n lastName: p.lastname,\n email: p.email,\n staffId: String(p.id)\n }))\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Agency, Period, Workorder } from '../../../models'\nimport { LipheContractRequest } from '../contract_request/contractRequestClient'\nimport { LipheAssignment } from '../assignment/assignmentClient'\ninterface LipheContractRequestPeriods {\n message: string\n status: boolean\n data: LipheContractRequestPeriodData[]\n meta: {\n current_page: number\n from: number\n last_page: number\n path: string\n per_page: number\n to: number\n total: number\n }\n}\n\ninterface LipheContractRequestPeriod {\n message: string\n status: boolean\n data: LipheContractRequestPeriodData\n meta: {\n current_page: number\n from: number\n last_page: number\n path: string\n per_page: number\n to: number\n total: number\n }\n}\n\ninterface LipheContractRequestPeriodData {\n id: number\n contract_request_id: number\n start_date: Date\n end_date: Date\n shift: 'morning' | 'afternoon' | 'evening' | 'night'\n start_time: Date\n end_time: Date\n departement_id: number\n note: string\n assignment_id: number\n assignment_parent_id: number | null\n created_at: Date\n updated_at: Date\n contract_request: LipheContractRequest\n department: string | null\n assignment: LipheAssignment\n assigned_employee_details: UserDetails\n assignment_employee: any\n}\n\ninterface UserDetails {\n id: number\n name: string\n email: string | null\n}\n\nexport class ContractRequestPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchAllContractRequestPeriods(\n agencyId: Agency,\n from?: Date,\n to?: Date,\n page: number = 1,\n activeAssignationsOnly: boolean = true,\n assignedPractitionerId?: string\n ): Promise<Workorder[]> {\n const url = `v2/contract-request-periods/agency/${agencyId}`\n const params = new URLSearchParams()\n const periods: Workorder[] = []\n let nextPage = true\n\n if (from) {\n params.append('from', from.toISOString().split('T')[0] + ' 00:00:00')\n }\n if (to) {\n params.append('to', to.toISOString().split('T')[0] + ' 23:59:59')\n }\n if (page) {\n params.append('page', page.toString())\n }\n if (activeAssignationsOnly) {\n params.append('active_assignations_only', activeAssignationsOnly ? '1' : '0')\n }\n\n if (assignedPractitionerId) {\n params.append('assigned_employee_id', assignedPractitionerId)\n }\n\n while (nextPage) {\n params.set('page', page.toString())\n\n const response = await this.axiosInstance.get<LipheContractRequestPeriods>(url, {\n params\n })\n\n for (const period of response.data.data) {\n periods.push({\n id: period.id.toString(),\n name: period.id.toString(),\n establishmentId: period.contract_request.community.id.toString(),\n region: period.contract_request.community.contact.address_state,\n establishmentName: period.contract_request.community.name,\n role: this.getRole(period),\n practitionerId: period.assignment.selected_client.id,\n startDate: new Date(period.start_date),\n endDate: new Date(period.end_date),\n createdAt: new Date(period.created_at),\n updatedAt: new Date(period.updated_at)\n })\n }\n\n nextPage = page < response.data.meta.last_page\n page++\n }\n\n return periods\n }\n\n async fetchContractRequestPeriod(workorderId: string) {\n const url = `v2/contract-request-periods/${workorderId}`\n const params = new URLSearchParams()\n const response = await this.axiosInstance.get<LipheContractRequestPeriod>(url, { params })\n\n return response.data.data\n }\n\n async getPayPeriodDatesForPayPeriodId(payPeriodId: string): Promise<Period[]> {\n const period = await this.fetchContractRequestPeriod(payPeriodId)\n const payPeriods: {\n payPeriodId: string\n startDate: string\n endDate: string\n workorderId: string\n }[] = []\n\n const firstPayPeriodDate = this.getPayPeriodDayBeforeStartDate(\n new Date(period.assignment.selected_client.agency.date_first_periode_paie),\n new Date(period.start_date)\n )\n\n const lastPayPeriodDate = this.getLastDayOfPayPeriod(\n new Date(firstPayPeriodDate),\n new Date(period.end_date)\n )\n\n // Calculate the number of weeks between lastPayPeriodDate and firstPayPeriodDate\n const weeksBetween = this.calculateWeeksBetween(firstPayPeriodDate, lastPayPeriodDate)\n\n for (let i = 0; i < weeksBetween; i++) {\n const tempDate = new Date(firstPayPeriodDate)\n\n const startDate = new Date(tempDate.setDate(tempDate.getDate() + 7 * i))\n const endDate = new Date(tempDate.setDate(tempDate.getDate() + 6))\n\n payPeriods.push({\n payPeriodId: '',\n startDate: startDate.toISOString().split('T')[0],\n endDate: endDate.toISOString().split('T')[0],\n workorderId: payPeriodId\n })\n }\n\n return payPeriods as unknown as Period[]\n }\n\n private getRole(period: LipheContractRequestPeriodData) {\n if (period.contract_request.job.translations.length === 0) {\n return ''\n }\n\n if (period.contract_request.job.translations.length > 1) {\n const roleTranslation = period.contract_request.job.translations.find(\n (translation: any) => translation.locale === 'en'\n )\n return roleTranslation?.content\n } else {\n return period.contract_request.job.translations[0].content\n }\n }\n\n /**\n * Calculates the pay period day of week that comes before the start date\n * @param firstPayPeriodDate The first pay period date from the agency\n * @param startDate The start date to find the pay period before\n * @returns The day of week (0-6, where 0 is Sunday) of the pay period before start_date\n */\n private getPayPeriodDayBeforeStartDate(firstPayPeriodDate: Date, startDate: Date): Date {\n const payPeriodDayOfWeek = firstPayPeriodDate.getDay()\n\n // Calculate the most recent pay period date that falls before start_date\n const tempDate = new Date(startDate)\n\n // Go back one week at a time until we find a date that matches the pay period day of week\n while (tempDate.getDay() !== payPeriodDayOfWeek) {\n tempDate.setDate(tempDate.getDate() - 1)\n }\n\n // If the calculated date is not before start_date, go back another week\n if (tempDate >= startDate) {\n tempDate.setDate(tempDate.getDate() - 7)\n }\n\n return tempDate\n }\n\n private getLastDayOfPayPeriod(firstPayPeriodDate: Date, endDate: Date): Date {\n const tempDate = new Date(firstPayPeriodDate)\n\n // Go back one week at a time until we find a date that matches the pay period day of week\n while (endDate > tempDate) {\n tempDate.setDate(tempDate.getDate() + 7)\n }\n\n return tempDate\n }\n\n private calculateWeeksBetween(startDate: Date, endDate: Date): number {\n const diffTime = Math.abs(endDate.getTime() - startDate.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n const weeks = Math.floor(diffDays / 7)\n return weeks\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { LipheAuthenticator } from './auth/authClient'\nimport { LiphePractitionerClient } from './practitioner/practitionerClient'\nimport { ContractRequestPeriodClient } from './contract_request_period/contractRequestPeriodClient'\nimport axiosRetry from 'axios-retry'\n\nexport class LipheApiClient {\n private instance: LipheApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: LipheAuthenticator\n public practitionerClient: LiphePractitionerClient\n public contractRequestPeriodClient: ContractRequestPeriodClient\n\n constructor(\n baseUrl: string,\n email: string,\n password: string,\n type: 'user' | 'client' = 'user'\n ) {\n this.axiosInstance.defaults.baseURL = baseUrl\n\n this.authenticator = new LipheAuthenticator(\n this.axiosInstance,\n baseUrl,\n email,\n password,\n type\n )\n\n axiosRetry(this.axiosInstance, {\n retries: 10,\n retryDelay: retryCount => {\n return Math.min(1000 * Math.pow(2, retryCount - 1), 30000)\n },\n onRetry: (retryCount, error) => {\n console.log(`Retry attempt ${retryCount} failed: ${error.message}`)\n }\n })\n\n this.practitionerClient = new LiphePractitionerClient(this.axiosInstance)\n this.contractRequestPeriodClient = new ContractRequestPeriodClient(this.axiosInstance)\n }\n async init() {\n await this.authenticator.initializeAuth()\n }\n\n setInstance(instance: LipheApiClient) {\n this.instance = instance\n }\n\n getInstance(): LipheApiClient {\n return this.instance\n }\n\n getAxiosInstance(): AxiosInstance {\n return this.axiosInstance\n }\n}\n","export enum Agency {\n CHCA = \"7\",\n CodeBleu = \"5\",\n NordikOntario = \"6\",\n PHA = \"8\",\n PremierSoin = \"1\",\n PremierSoinNordik = \"3\",\n SolutionNursing = \"4\",\n SolutionsStaffing = \"9\",\n Transport = \"2\",\n SSI = \"99\"\n}\n\nexport * from './timesheet'\nexport * from './user'\nexport * from './workorder'\n","export enum LipheRegion {\n 'Abitibi-Témiscaminque',\n 'Alberta',\n 'Autre',\n 'Baie d\\'Hudson',\n 'Baie James',\n 'Bas St-Laurent',\n 'British Columbia',\n 'Charlevoix',\n 'Estrie',\n 'Gaspésie',\n 'Haut St-Maurice',\n 'Iles de la Madeleine',\n 'Lanaudière',\n 'Laurentides',\n 'Laval',\n 'Manitoba',\n 'Mauricie',\n 'Montérégie',\n 'Montréal',\n 'New Brunswick',\n 'Newfoundland and Labrador',\n 'Northwest Territories',\n 'Nova Scotia',\n 'Nunavut',\n 'Ontario',\n 'Outaouais',\n 'Prince Edward Island',\n 'Québec',\n 'Rivière du Loup / Matane',\n 'Saguenay',\n 'Saskatchewan',\n 'Sept-Iles / Côte-Nord',\n 'Thetford Mines',\n 'Ungava',\n 'Yukon',\n}\n\nexport enum LipheGeographicalArea {\n 'Berthierville',\n 'Bordeaux-Cartierville',\n 'Labelle',\n 'Laval',\n 'Le Gardeur',\n 'Lindsay - Gingras',\n 'Montréal',\n 'Montréal - Est',\n 'Montréal - Ouest',\n 'Outaouais',\n 'Rive - Sud',\n 'Ste - Adèle',\n 'Ste - Agathe',\n 'St - Eustache',\n 'St - Jérôme',\n 'Verdun',\n 'Mont - Tremblant',\n 'Montréal(centre - ville)',\n 'Basses Laurentides',\n 'Valleyfield',\n 'Argenteuil',\n 'Lachute',\n 'Lanaudière SUD',\n 'Lanaudière NORD',\n 'Granby',\n 'Sorel',\n 'Longueuil',\n 'Châteauguay',\n 'St - Jean sur Richelieu',\n 'St - Hyacinthe',\n 'Drummondville',\n 'Blainville',\n 'La Prairie',\n 'Mont - Laurier',\n 'Pierre - Boucher',\n 'Berthiaume du Tremblay',\n 'Grand Nord',\n 'Montréal Nord',\n 'Rouyn Noranda',\n 'Chicoutimi',\n 'Québec',\n 'Sherbrooke',\n 'Trois - Rivières',\n 'Gaspésie',\n 'Côte - Nord',\n 'Abitibi - Témiscamingue',\n 'Portneuf',\n 'Charlevoix',\n 'CHUQ',\n 'Thetford Mines',\n 'Chaudière - Appalaches',\n 'Saint - Raymond',\n 'Limoilou',\n 'Ancienne - Lorette',\n 'Malbaie',\n 'Baie - Saint - Paul',\n 'St - Anne de Beaupré',\n 'Loretteville',\n 'Valcartier',\n 'Rivière - du - Loup',\n 'Maria',\n 'Manicouagan',\n 'Sept - Iles',\n 'Basse - Côte - Nord',\n 'Port - Cartier',\n 'Sherfferville',\n 'Minganie',\n 'Natashquan',\n 'Chibougamau',\n 'Mauricie',\n 'Maskinongé',\n 'Parent',\n 'Mémphrémagog',\n 'Coaticook',\n 'Victoriaville',\n 'Rimouski',\n 'Shawinigan',\n 'Matane',\n 'Santa - Cabrini',\n 'Marie - Clarac',\n 'Hôpital lachine',\n 'Rivière - Rouge',\n 'Jeanne - Mance',\n 'Le Repair',\n 'Montérégie',\n 'Estrie',\n 'Villa - Medica',\n 'Laurentides',\n 'Hors - Qc',\n 'Hors - Can',\n 'Hors Pays',\n 'Hors Province',\n 'Baie James',\n 'Nunavut',\n 'Ungava',\n 'Inuulitsivik',\n 'Bas Saint - Laurent',\n 'Lévis',\n 'Îles de la Madeleine',\n 'Saguenay',\n 'Alberta',\n 'British Columbia',\n 'Yukon',\n 'Northwest Territories',\n 'Saskatchewan',\n 'Manitoba',\n 'Ontario',\n 'New Brunswick',\n 'Newfoundland and Labrador',\n 'Prince Edward Island',\n 'Nova Scotia',\n}\n\nexport enum Province {\n AB = 'AB',\n BC = 'BC',\n MB = 'MB',\n NB = 'NB',\n NL = 'NL',\n NS = 'NS',\n NT = 'NT',\n NU = 'NU',\n ON = 'ON',\n PE = 'PE',\n QC = 'QC',\n SK = 'SK',\n YT = 'YT'\n}\n\n","export const SF_API_VERSION: string = 'v57.0'\n\n// Salesforce API\nexport { SFApiClient } from './api/salesforce/apiClient'\nexport { SFPractitionerClient } from './api/salesforce/practitioner/practitionerClient'\nexport { SFTimesheetClient } from './api/salesforce/timesheet/timesheetClient'\nexport { SFAuthenticator } from './api/salesforce/auth/auth'\nexport { SFPriceClient } from './api/salesforce/prices/priceClient'\nexport { SFExpenseClient } from './api/salesforce/expenses/expenseClient'\n\n// Liphe API\nexport { LipheApiClient } from './api/liphe_legacy/lipheApiClient'\nexport { LipheAuthenticator } from './api/liphe_legacy/auth/authClient'\nexport { LiphePractitionerClient } from './api/liphe_legacy/practitioner/practitionerClient'\n\n// Common Models\nexport { Practitioner, Role, TimesheetDayEntry, Workorder, Agency, Period } from './models'\nexport { LipheRegion, Province, LipheGeographicalArea } from './models/regions'"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","clientId","clientSecret","onTokenRefresh","_this","token","wrap","_callee2$","_context2","prev","next","postToken","sent","headers","common","interceptors","response","use","_ref","_callee","error","_error$response","originalRequest","newClientCredentials","newClientId","newClientSecret","newToken","_callee$","_context","config","_retryCount","status","tokenRefreshPromise","timeout","Promise","race","_","reject","setTimeout","Error","abrupt","t0","stop","_x4","apply","arguments","_x","_x2","_x3","_postToken","_callee3","_response$data","tokenFormRequestBody","_callee3$","_context3","FormData","refreshToken","append","post","getHeaders","data","_x5","_x6","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","console","message","getTimesheetIds","_getTimesheetIds","workorderId","periodStartDate","periodEndDate","query","_yield$this$axiosInst","records","Date","toISOString","substring","get","params","q","map","record","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","value","push","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHours","_getTimesheetHours","_callee4","fields","timesheetIds","allHours","_iterator2","_step2","timesheetId","_yield$this$axiosInst2","_callee4$","_context4","join","length","toTimesheetDayEntry","_x7","_x8","_x9","_x10","getPayPeriods","_getPayPeriods","_callee5","payPeriods","_iterator3","_step3","payPeriod","_callee5$","_context5","name","Name","startDate","StartDate__c","endDate","EndDate__c","uploadImageToTimesheet","_uploadImageToTimesheet","_callee6","file","filename","form","uploadRes","versionId","_yield$this$axiosInst3","contentDocumentId","_err$response","_callee6$","_context6","JSON","stringify","Title","PathOnClient","contentType","ContentDocumentId","LinkedEntityId","ShareType","Visibility","_x11","_x12","_x13","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","options","conditions","whereClause","limitClause","pageRecords","nextRecordsUrl","isDone","createdAt","limit","Math","floor","forExport","PRACTITIONER_FIELDS","toPractitionerExport","toPractitioner","fetchPractitionerByEmail","_fetchPractitionerByEmail","email","fetchRoles","_fetchRoles","then","label","Label","Value","firstName","FirstName__c","lastName","LastName__c","Email__c","staffId","StaffID__c","CreatedDate","replace","_extends","phone","DaytimePhone__c","Status__c","professionalDesignation","ProfessionalDesignation__c","SIN","CANSocialInsuranceNumber__c","hiringDate","Date_of_Hire__c","dateApplied","DateApplied__c","birthdate","Birthdate__c","mailingStreetAddress","MailingStreetAddress__c","mailingCity","MailingCity__c","mailingProvince","MailingStateProvince__c","mailingZip","MailingZipPostalCode__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","_options$provinces","filters","isoStart","isoEnd","_options$provinces2","provincesList","split","provinces","p","establishmentId","HospitalID__c","region","Region__c","establishmentName","HospitalName__c","role","Personnel__c","startdate__c","unit","formatString","Unit__c","externalUnitId","formatId","healthAuthority","HealthAuthority__c","externalHealthAuthorityId","price","UnitPrice__r","Price__c","travelInTime","TravelDate__c","travelOutTime","ReturnDate__c","unformattedUnit","trim","htmlString","hrefMatch","match","SFPayPeriodClient","getPayPeriodAndTimesheetIdsForWorkorder","_getPayPeriodAndTimesheetIdsForWorkorder","workorderID","payPeriodIds","payPeriodId","PayPeriod__c","getPayPeriodDatesForPayPeriodIds","_getPayPeriodDatesForPayPeriodIds","payPeriodIDs","payPeriodDates","listOfIdsForQuery","EXPENSE_FIELD_MAP","Lodging","Other","Transportation","SFExpenseClient","fetchExpenseTotals","_fetchExpenseTotals","toExpense","patchTimesheet","_patchTimesheet","body","res","updateExpense","_updateExpense","expense","_this$patchTimesheet","submittedValue","field","workorderPeriodId","Number","type","reimbursable","_raw$Reimburseable_Ex","Reimburseable_Expenses__c","perDiem","_raw$Per_Diem_Total__","Per_Diem_Total__c","lodging","_raw$StipendTotalOver","StipendTotalOverride__c","transportation","_raw$TaxiAmount__c","TaxiAmount__c","SFPriceClient","getPriceListByWorkorderId","_getPriceListByWorkorderId","_record$UnitPrice__r","_record$UnitPrice__r2","_record$UnitPrice__r3","_record$UnitPrice__r4","_record$UnitPrice__r5","_record$UnitPrice__r6","_record$UnitPrice__r7","_record$UnitPrice__r8","_record$UnitPrice__r9","_record$UnitPrice__r10","_record$UnitPrice__r11","_record$UnitPrice__r12","_record$UnitPrice__r13","_record$UnitPrice__r14","_record$UnitPrice__r15","_record$UnitPrice__r16","Price__r","mileageBillingRate","MileageBillingRate__c","mileageWageRate","MileageWageRate__c","regularBillingRate","BillingRate__c","regularWageRate","WageRate__c","overtime1BillingRate","Overtime1BillingRate__c","overtime1WageRate","Overtime1WageRate__c","overtime2BillingRate","Overtime2BillingRate__c","overtime2WageRate","Overtime2WageRate__c","callbackBillingRate","CallBackBillingRate__c","callbackWageRate","CallBackWageRate__c","onCallBillingRate","OnCallBillingRate__c","onCallWageRate","OnCallWageRate__c","additionalBillingInfo","Additional_Billing_Information__c","additionalWageInfo","Additional_Wage_Information__c","ACCOUNT_FIELDS","SFAccounts","fetchAccounts","_fetchAccounts","accountType","accounts","i","parentId","active","buildAccount","t1","keys","t2","accountTypeName","children","t3","failfast","Type","address","_record$BillingAddres","_record$BillingAddres2","BillingAddress","filter","Boolean","city","BillingCity","province","BillingState","postalCode","BillingPostalCode","geographicalAreaName","BillingGeocodeAccuracy","Phone","fax","Fax","regionName","RegionName","phone2","cellular","lang","SFApiClient","init","_init","sfClientId","sfClientSecret","authenticator","timesheetClient","workorderClient","practitionerClient","payPeriodClient","expenseClient","priceClient","accountsClient","setInstance","instance","getInstance","LipheAuthenticator","password","axiosRetry","retries","retryDelay","retryCount","min","pow","login","_login","LiphePractitionerClient","fetchAllPractitioners","_fetchAllPractitioners","agencyId","practitioners","page","nextPage","agency_id","Array","isArray","pagePractitioners","firstname","lastname","communicationMode","next_page_url","String","ContractRequestPeriodClient","fetchAllContractRequestPeriods","_fetchAllContractRequestPeriods","from","to","activeAssignationsOnly","assignedPractitionerId","periods","period","URLSearchParams","toString","set","contract_request","community","contact","address_state","getRole","assignment","selected_client","start_date","end_date","created_at","updated_at","meta","last_page","fetchContractRequestPeriod","_fetchContractRequestPeriod","getPayPeriodDatesForPayPeriodId","_getPayPeriodDatesForPayPeriodId","firstPayPeriodDate","lastPayPeriodDate","weeksBetween","tempDate","getPayPeriodDayBeforeStartDate","agency","date_first_periode_paie","getLastDayOfPayPeriod","calculateWeeksBetween","setDate","getDate","job","translations","roleTranslation","find","translation","locale","content","payPeriodDayOfWeek","getDay","diffTime","abs","getTime","diffDays","ceil","weeks","LipheApiClient","onRetry","log","contractRequestPeriodClient","getAxiosInstance","Agency","LipheRegion","LipheGeographicalArea","Province"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/salesforce/auth/auth.ts","../src/api/salesforce/timesheet/timesheetClient.ts","../src/api/salesforce/practitioner/practitionerClient.ts","../src/api/salesforce/workorder/workorderClient.ts","../src/api/salesforce/payperiod/payperiodClient.ts","../src/api/salesforce/expenses/expenseClient.ts","../src/api/salesforce/prices/priceClient.ts","../src/api/salesforce/accounts/accounts.ts","../src/api/salesforce/apiClient.ts","../src/api/liphe_legacy/auth/authClient.ts","../src/api/liphe_legacy/practitioner/practitionerClient.ts","../src/api/liphe_legacy/contract_request_period/contractRequestPeriodClient.ts","../src/api/liphe_legacy/lipheApiClient.ts","../src/models/index.ts","../src/models/regions.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\nimport FormData from 'form-data'\n\nexport class SFAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private refreshToken: string | undefined = undefined\n private tokenRefreshPromise: Promise<string> | null = null\n\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl: string) {\n this.axiosTokenInstance.defaults.baseURL = baseUrl\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(\n clientId: string,\n clientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n // If the error is 401 and we haven't exceeded max retries\n if (error.response?.status === 401 && originalRequest._retryCount < 3) {\n originalRequest._retryCount++\n\n try {\n // Use existing token refresh if one is in progress\n if (!this.tokenRefreshPromise) {\n const newClientCredentials = await onTokenRefresh?.()\n const newClientId = newClientCredentials?.clientId || clientId\n const newClientSecret =\n newClientCredentials?.clientSecret || clientSecret\n this.tokenRefreshPromise = this.postToken(newClientId, newClientSecret)\n }\n\n const newToken = await this.tokenRefreshPromise\n // Clear the refresh promise after it completes\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${newToken}`\n originalRequest.headers['Authorization'] = `Bearer ${newToken}`\n\n originalRequest.timeout = 5000\n\n return await Promise.race([\n this.authenticatedAxiosInstance(originalRequest),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error('Retry request timeout')),\n originalRequest.timeout\n )\n )\n ])\n } catch (refreshError) {\n // Clear the refresh promise if it fails\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\n )\n this.token = response?.data?.['access_token']\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\n return this.token\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { TimesheetDayEntry } from '../../../models'\nimport { SF_API_VERSION } from '../../../index'\nimport FormData from 'form-data'\n\ninterface SFTimesheetHourField {\n Id: string\n Date__c: Date\n Callback__c: number\n HoursEBAdjusted__c: number\n Misc__c: number\n OT1__c: number\n OT2__c: number\n OnCall__c: number\n Misc1__c: number\n Misc_1_Hours__c: number\n Misc_2_Hours__c: number\n Misc_3_Hours__c: number\n Misc_4_Hours__c: number\n Stat1__c: number\n Stat2__c: number\n In_Charge__c: number\n Shift_Travel_Stipend__c: number\n LastModifiedDate: Date\n}\ntype SFTimesheetHourFieldKeys = (keyof SFTimesheetHourField)[]\n\nexport class SFTimesheetClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\n const response = await this.axiosInstance.patch(url, {\n Date__c: timesheet.date,\n Callback__c: timesheet.callbackHours,\n HoursEBAdjusted__c: timesheet.regularHours,\n Misc__c: timesheet.miscHours,\n OT1__c: timesheet.overtime1Hours,\n OT2__c: timesheet.overtime2Hours,\n OnCall__c: timesheet.onCallHours,\n Misc1__c: timesheet.misc1HoursA,\n Misc_1_Hours__c: timesheet.misc1HoursB,\n Misc_2_Hours__c: timesheet.misc2Hours,\n Misc_3_Hours__c: timesheet.misc3Hours,\n Misc_4_Hours__c: timesheet.misc4Hours,\n Stat1__c: timesheet.stat1Hours,\n Stat2__c: timesheet.stat2Hours,\n In_Charge__c: timesheet.inChargeHours,\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\n })\n\n if (![200, 204, 304].includes(response.status))\n throw new Error(`got error status code ${response.status}`)\n } catch (error) {\n console.error('Error Updating Timesheet Hour: ', error.message)\n }\n }\n\n async getTimesheetIds(\n workorderId: string,\n periodStartDate?: Date,\n periodEndDate?: Date\n ): Promise<string[]> {\n // Find all timesheet Ids that belong to this WO\n const url = `/services/data/${SF_API_VERSION}/query`\n let query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'`\n try {\n if (periodStartDate && periodEndDate) {\n query += `\n AND PayPeriodStartDate__c <= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND PayPeriodEndDate__c >= ${new Date(periodEndDate).toISOString().substring(0, 10)}\n `\n }\n } catch (error) {\n console.error('Invalid period dates', error)\n }\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(record => record.Id)\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async getTimesheetHours(\n workorderId: string,\n fields?: SFTimesheetHourFieldKeys[],\n periodStartDate?: Date,\n periodEndDate?: Date\n ): Promise<TimesheetDayEntry[]> {\n const timesheetIds = await this.getTimesheetIds(workorderId, periodStartDate, periodEndDate)\n\n const allHours: SFTimesheetHourField[] = []\n const url = `/services/data/${SF_API_VERSION}/query`\n for (const timesheetId of timesheetIds) {\n let query = `\n SELECT ${fields?.join(',') || 'FIELDS(STANDARD)'}\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'`\n try {\n if (fields?.length && periodStartDate && periodEndDate) {\n query += `\n AND Date__c >= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND Date__c <= ${new Date(periodEndDate).toISOString().substring(0, 10)}`\n }\n\n const {\n data: { records }\n } = await this.axiosInstance.get<{ records: SFTimesheetHourField[] }>(url, {\n params: { q: query }\n })\n allHours.push(...records)\n } catch (err) {\n console.error(`Failed to fetch`, err)\n }\n }\n return allHours.map(toTimesheetDayEntry)\n }\n\n async getPayPeriods(): Promise<any> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriods = []\n\n for (const payPeriod of data.data.records) {\n payPeriods.push({\n name: payPeriod.Name,\n startDate: payPeriod.StartDate__c,\n endDate: payPeriod.EndDate__c\n })\n }\n\n return payPeriods\n }\n\n async uploadImageToTimesheet(\n file: Buffer,\n filename: string,\n timesheetId: string\n ): Promise<void> {\n try {\n const form = new FormData()\n form.append(\n 'entity_content',\n JSON.stringify({\n Title: filename,\n PathOnClient: filename\n }),\n { contentType: 'application/json' }\n )\n\n form.append('VersionData', file, {\n filename,\n contentType: 'application/octet-stream'\n })\n const uploadRes = await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentVersion`,\n form,\n { headers: form.getHeaders() }\n )\n\n const versionId = uploadRes.data.id\n\n //get ContentDocumentId\n const { data } = await this.axiosInstance.get(\n `/services/data/${SF_API_VERSION}/query`,\n {\n params: {\n q: `SELECT ContentDocumentId FROM ContentVersion WHERE Id = '${versionId}'`\n }\n }\n )\n const contentDocumentId = data.records[0].ContentDocumentId\n\n await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentDocumentLink`,\n {\n ContentDocumentId: contentDocumentId,\n LinkedEntityId: timesheetId,\n ShareType: 'V',\n Visibility: 'AllUsers'\n }\n )\n } catch (err) {\n console.error('Salesforce error response:', err?.response?.data)\n console.error('Error uploading and linking image:', err?.message)\n }\n }\n}\n\nfunction toTimesheetDayEntry(raw: SFTimesheetHourField): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner, PractitionerExport, Role } from '../../../models'\nimport { SF_API_VERSION } from '../../../index'\n\nexport class SFPractitionerClient {\n private PRACTITIONER_FIELDS = {\n default: ['Id', 'FirstName__c', 'LastName__c', 'Email__c', 'StaffID__c', 'CreatedDate'],\n export: [\n 'Id',\n 'FirstName__c',\n 'LastName__c',\n 'Email__c',\n 'StaffID__c',\n 'CreatedDate',\n 'DaytimePhone__c',\n 'Status__c',\n 'ProfessionalDesignation__c',\n 'CANSocialInsuranceNumber__c',\n 'Date_of_Hire__c',\n 'DateApplied__c',\n 'Birthdate__c',\n 'MailingStreetAddress__c',\n 'MailingCity__c',\n 'MailingStateProvince__c',\n 'MailingZipPostalCode__c'\n ]\n } as const\n\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(options: {\n createdAt?: string\n limit?: number\n forExport: true\n }): Promise<PractitionerExport[]>\n\n async fetchPractitioners(options?: {\n createdAt?: string\n limit?: number\n forExport?: false | undefined\n }): Promise<Practitioner[]>\n\n async fetchPractitioners(options?: {\n createdAt?: string\n limit?: number\n forExport?: boolean\n }): Promise<Practitioner[] | PractitionerExport[]> {\n try {\n const conditions: string[] = [`Status__c = 'Active'`]\n if (options?.createdAt) {\n conditions.push(`CreatedDate > ${options.createdAt}`)\n }\n const whereClause = conditions.length ? `WHERE ${conditions.join(' AND ')}` : ''\n const limitClause =\n typeof options?.limit === 'number' && options.limit > 0\n ? `LIMIT ${Math.floor(options.limit)}`\n : ''\n let url = `/services/data/${SF_API_VERSION}/query`\n const fields = (\n options?.forExport\n ? this.PRACTITIONER_FIELDS.export\n : this.PRACTITIONER_FIELDS.default\n ).join(', ')\n\n const query = `\n SELECT ${fields}\n FROM Personnel__c\n ${whereClause}\n ORDER BY CreatedDate ASC, StaffID__c ASC\n ${limitClause}\n `\n const records = []\n let done = false\n do {\n const {\n data: { records: pageRecords, nextRecordsUrl, done: isDone }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n records.push(...pageRecords)\n done = isDone\n url = nextRecordsUrl\n } while (!done)\n\n return options?.forExport\n ? records.map(toPractitionerExport)\n : records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n\n async fetchPractitionerByEmail(email: string): Promise<Practitioner | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c, CreatedDate\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '${email}'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n if (records.length === 0) {\n return null\n }\n return toPractitioner(records[0])\n } catch (error) {\n console.error('Error fetching practitioner by email:', error)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n .catch(error => {\n console.error('Error fetching roles: ', error.message)\n throw error\n })\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c,\n createdAt: raw.CreatedDate ? raw.CreatedDate.replace(/\\+0000$/, 'Z') : undefined\n }\n}\n\nfunction toPractitionerExport(raw: any): PractitionerExport {\n return {\n ...toPractitioner(raw),\n phone: raw.DaytimePhone__c,\n status: raw.Status__c,\n professionalDesignation: raw.ProfessionalDesignation__c,\n SIN: raw.CANSocialInsuranceNumber__c,\n hiringDate: raw.Date_of_Hire__c,\n dateApplied: raw.DateApplied__c,\n birthdate: raw.Birthdate__c,\n mailingStreetAddress: raw.MailingStreetAddress__c,\n mailingCity: raw.MailingCity__c,\n mailingProvince: raw.MailingStateProvince__c,\n mailingZip: raw.MailingZipPostalCode__c\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../../../index'\nimport { Workorder } from '../../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getWorkordersForPractitioner(\n practitionerId?: string,\n options?: { startDate?: Date; endDate?: Date; provinces?: string[] }\n ): Promise<Workorder[]> {\n try {\n const filters: string[] = []\n if (practitionerId) {\n filters.push(`Personnel__c = '${practitionerId}'`)\n }\n if (options?.startDate) {\n const isoStart = options.startDate.toISOString().split('T')[0]\n filters.push(`EndDate__c >= ${isoStart}`)\n }\n if (options?.endDate) {\n const isoEnd = options.endDate.toISOString().split('T')[0]\n filters.push(`startdate__c <= ${isoEnd}`)\n }\n\n if (options?.provinces?.length) {\n const provincesList = options?.provinces?.map(p => `'${p}'`).join(', ')\n filters.push(`Region__c IN (${provincesList})`)\n }\n const whereClause = filters.length ? `WHERE ${filters.join(' AND ')}` : ''\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id,\n Region__c,\n Name,\n HospitalID__c,\n HospitalName__c,\n ProfessionalDesignation__c,\n Personnel__c,\n startdate__c,\n EndDate__c,\n CreatedDate,\n LastModifiedDate,\n Unit__c,\n HealthAuthority__c,\n UnitPrice__r.Price__c,\n TravelDate__c,\n ReturnDate__c\n FROM WorkOrder__c ${whereClause}`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) => {\n return records.map(\n (record): Workorder => ({\n id: record.Id,\n name: record.Name,\n establishmentId: record.HospitalID__c,\n region: record.Region__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate),\n unit: formatString(record.Unit__c),\n externalUnitId: formatId(record.Unit__c),\n healthAuthority: formatString(record.HealthAuthority__c),\n externalHealthAuthorityId: formatId(record.HealthAuthority__c),\n price: record.UnitPrice__r.Price__c,\n travelInTime: new Date(record.TravelDate__c),\n travelOutTime: new Date(record.ReturnDate__c)\n })\n )\n })\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}\n\nconst formatString = (unformattedUnit: string) =>\n !unformattedUnit ? '' : unformattedUnit.replace(/<[^>]*>/g, '').trim()\n\nconst formatId = (htmlString: string): string => {\n if (!htmlString) return ''\n\n const hrefMatch = htmlString.match(/href=\"\\/([^\"]+)\"/i)\n return hrefMatch ? hrefMatch[1] : ''\n}\n","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../../../index'\nimport { Period } from '../../../models'\n\nexport class SFPayPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPayPeriodAndTimesheetIdsForWorkorder(workorderID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderID}'`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodIds = []\n\n for (const payPeriods of data.data.records) {\n payPeriodIds.push({\n timesheetId: payPeriods.Id,\n payPeriodId: payPeriods.PayPeriod__c\n })\n }\n\n return payPeriodIds\n }\n\n async getPayPeriodDatesForPayPeriodIds(payPeriodIDs: string[]): Promise<Period[]> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN ${listOfIdsForQuery(payPeriodIDs)}`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodDates = []\n\n for (const payPeriod of data.data.records) {\n payPeriodDates.push({\n payPeriodId: payPeriod.Id,\n startDate: new Date(payPeriod.StartDate__c),\n endDate: new Date(payPeriod.EndDate__c)\n })\n }\n\n return payPeriodDates\n }\n}\n\nconst listOfIdsForQuery = (payPeriodIDs: string[]) => `('${payPeriodIDs.join(\"', '\")}')`\n","import { AxiosInstance } from 'axios'\nimport { Expense } from '../../../models/expense'\nimport { SF_API_VERSION } from '../../../index'\n\ntype FrontendExpense = {\n workorderPeriodId: string\n submittedValue: string\n type: 'Other' | 'Lodging' | 'Transportation' | 'Travel (Hours)' | 'Per diem' | 'Meals'\n}\n\nconst EXPENSE_FIELD_MAP = {\n Lodging: 'StipendTotalOverride__c',\n 'Per diem': 'Per_Diem_Total__c',\n Other: 'Reimburseable_Expenses__c',\n Transportation: 'TaxiAmount__c'\n} as const\n\ntype SupportedExpenseType = keyof typeof EXPENSE_FIELD_MAP\n\nexport class SFExpenseClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchExpenseTotals(timesheetId: string): Promise<Expense | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/Timesheet__c/${timesheetId}`\n const { data } = await this.axiosInstance.get(url, {\n params: {\n fields: 'Reimburseable_Expenses__c,Per_Diem_Total__c,StipendTotalOverride__c,TaxiAmount__c'\n }\n })\n if (!data) return null\n return toExpense(data)\n } catch (err) {\n console.error('Failed to fetch expense totals', err)\n throw err\n }\n }\n\n private async patchTimesheet(timesheetId: string, body: Record<string, number>): Promise<void> {\n const url = `/services/data/${SF_API_VERSION}/sobjects/Timesheet__c/${timesheetId}`\n const res = await this.axiosInstance.patch(url, body)\n if (![200, 204, 304].includes(res.status)) {\n throw new Error(`Unexpected status ${res.status}`)\n }\n }\n\n async updateExpense(expense: FrontendExpense): Promise<void> {\n const timesheetId = expense.workorderPeriodId\n const submittedValue = Number(expense.submittedValue)\n const field = EXPENSE_FIELD_MAP[expense.type as SupportedExpenseType]\n if (!field) {\n throw new Error(`Unsupported expense type: ${expense.type}`)\n }\n\n await this.patchTimesheet(timesheetId, { [field]: submittedValue })\n }\n}\n\nfunction toExpense(raw: any): Expense {\n return {\n reimbursable: Number(raw.Reimburseable_Expenses__c ?? 0),\n perDiem: Number(raw.Per_Diem_Total__c ?? 0),\n lodging: Number(raw.StipendTotalOverride__c ?? 0),\n transportation: Number(raw.TaxiAmount__c ?? 0)\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Price } from '../../../models/price'\nimport { SF_API_VERSION } from '../../../index'\n\nexport class SFPriceClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPriceListByWorkorderId(workorderId?: string): Promise<Price> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT UnitPrice__r.Price__r.Id,\n UnitPrice__r.Price__r.Name,\n UnitPrice__r.Price__r.MileageBillingRate__c,\n UnitPrice__r.Price__r.MileageWageRate__c,\n UnitPrice__r.Price__r.BillingRate__c,\n UnitPrice__r.Price__r.WageRate__c,\n UnitPrice__r.Price__r.Overtime1BillingRate__c,\n UnitPrice__r.Price__r.Overtime1WageRate__c,\n UnitPrice__r.Price__r.Overtime2BillingRate__c,\n UnitPrice__r.Price__r.Overtime2WageRate__c,\n UnitPrice__r.Price__r.CallBackBillingRate__c,\n UnitPrice__r.Price__r.CallBackWageRate__c,\n UnitPrice__r.Price__r.OnCallBillingRate__c,\n UnitPrice__r.Price__r.OnCallWageRate__c,\n UnitPrice__r.Price__r.Additional_Billing_Information__c,\n UnitPrice__r.Price__r.Additional_Wage_Information__c\n FROM WorkOrder__c WHERE Id = '${workorderId}' `\n\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) => {\n return records.map(\n (record): Price => ({\n id: record?.UnitPrice__r?.Price__r.Id,\n name: record?.UnitPrice__r?.Price__r.Name,\n mileageBillingRate:\n record?.UnitPrice__r?.Price__r.MileageBillingRate__c,\n mileageWageRate: record?.UnitPrice__r?.Price__r.MileageWageRate__c,\n regularBillingRate: record?.UnitPrice__r?.Price__r.BillingRate__c,\n regularWageRate: record?.UnitPrice__r?.Price__r.WageRate__c,\n overtime1BillingRate:\n record?.UnitPrice__r?.Price__r.Overtime1BillingRate__c,\n overtime1WageRate: record?.UnitPrice__r?.Price__r.Overtime1WageRate__c,\n overtime2BillingRate:\n record?.UnitPrice__r?.Price__r.Overtime2BillingRate__c,\n overtime2WageRate: record?.UnitPrice__r?.Price__r.Overtime2WageRate__c,\n callbackBillingRate:\n record?.UnitPrice__r?.Price__r.CallBackBillingRate__c,\n callbackWageRate: record?.UnitPrice__r?.Price__r.CallBackWageRate__c,\n onCallBillingRate: record?.UnitPrice__r?.Price__r.OnCallBillingRate__c,\n onCallWageRate: record?.UnitPrice__r?.Price__r.OnCallWageRate__c,\n additionalBillingInfo:\n record?.UnitPrice__r?.Price__r.Additional_Billing_Information__c,\n additionalWageInfo:\n record?.UnitPrice__r?.Price__r.Additional_Wage_Information__c\n })\n )\n })\n } catch (error) {\n console.error('Error fetching Price list: ', error.message)\n throw error\n }\n }\n}\n","import { AxiosInstance } from 'axios'\n\nexport interface Account {\n id: string\n name: string\n accountTypeName: AccountType\n regionName: string\n geographicalAreaName: string | null\n address: string | null\n city: string | null\n province: string | null\n postalCode: string | null\n phone: string | null\n phone2: string | null\n cellular: string | null\n fax: string | null\n email: string\n lang: 'eng' | 'fra'\n clientNumber: string\n}\n\nexport interface HealthAuthority extends Account {\n accountTypeName: 'healthAuthority'\n children: Establishment[]\n}\n\nexport interface Establishment extends Account {\n accountTypeName: 'establishment'\n}\n\ntype AccountType = 'healthAuthority' | 'establishment'\n\nconst ACCOUNT_FIELDS = [\n 'Id',\n 'Name',\n 'BillingCity',\n 'BillingState',\n 'BillingPostalCode',\n 'BillingCountry',\n 'BillingAddress',\n 'Phone',\n 'Fax',\n 'Type',\n 'Client_Number__c'\n] as const\n\nexport class SFAccounts {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchAccounts<T extends Account>(\n type: AccountType,\n options?: { parentId?: string; active?: boolean; failfast?: boolean }\n ): Promise<T[]> {\n try {\n let accountType: 'Health Authority' | 'Hospital'\n switch (type) {\n case 'healthAuthority':\n accountType = 'Health Authority'\n break\n case 'establishment':\n accountType = 'Hospital'\n }\n\n let query = `SELECT ${ACCOUNT_FIELDS.join(',')} FROM Account WHERE Type = '${accountType}'`\n if (options?.parentId) query += ` AND ParentId = '${options.parentId}'`\n if (options?.active) query += ` AND Active__c = true`\n\n let records = []\n let done = false\n let url = `/services/data/v57.0/query`\n do {\n const {\n data: { records: pageRecords, nextRecordsUrl, done: isDone }\n } = await this.axiosInstance.get(url, { params: { q: query } })\n records.push(...pageRecords)\n done = isDone\n url = nextRecordsUrl\n } while (!done)\n const accounts: Account[] = records.map(record => this.buildAccount(record))\n\n for (const i in accounts)\n if (accounts[i].accountTypeName === 'healthAuthority')\n (accounts[i] as HealthAuthority).children =\n await this.fetchAccounts<Establishment>('establishment', {\n parentId: accounts[i].id,\n active: options?.active\n })\n\n return accounts as T[]\n } catch (error) {\n console.error(`Error fetching ${type} accounts: `, error.message)\n if (options?.failfast) throw error\n return []\n }\n }\n private buildAccount(record: any): Account {\n let accountType: AccountType\n\n switch (record.Type) {\n case 'Health Authority':\n accountType = 'healthAuthority'\n break\n case 'Hospital':\n accountType = 'establishment'\n }\n\n const fields = ['street', 'city', 'state', 'country', 'postalCode']\n const address = fields\n .map(field => record.BillingAddress?.[field]?.trim() ?? '')\n .filter(Boolean)\n .join('\\n')\n\n return {\n id: record.Id,\n name: record.Name,\n address: address,\n city: record.BillingCity,\n province: record.BillingState,\n postalCode: record.BillingPostalCode,\n geographicalAreaName: record.BillingGeocodeAccuracy,\n phone: record.Phone,\n fax: record.Fax,\n regionName: record.RegionName,\n accountTypeName: accountType,\n email: null,\n phone2: null,\n cellular: null,\n lang: 'eng',\n clientNumber: record.Client_Number__c\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\nimport { SFPayPeriodClient } from './payperiod/payperiodClient'\nimport { SFExpenseClient } from './expenses/expenseClient'\nimport { SFPriceClient } from './prices/priceClient'\nimport { SFAccounts } from './accounts/accounts'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n payPeriodClient: SFPayPeriodClient\n expenseClient: SFExpenseClient\n priceClient: SFPriceClient\n accountsClient: SFAccounts\n\n async init(\n baseUrl: string,\n sfClientId: string,\n sfClientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL = baseUrl\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n this.payPeriodClient = new SFPayPeriodClient(this.axiosInstance)\n this.expenseClient = new SFExpenseClient(this.axiosInstance)\n this.priceClient = new SFPriceClient(this.axiosInstance)\n this.accountsClient = new SFAccounts(this.axiosInstance)\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret, onTokenRefresh)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n if (!this.instance) {\n throw new Error('Salesforce Api client not initialized')\n }\n return this.instance\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport axiosRetry from 'axios-retry'\nimport FormData from 'form-data'\n\nexport class LipheAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private tokenRefreshPromise: Promise<string> | null = null\n private email: string\n private password: string\n private type: string\n\n constructor(\n authenticatedAxiosInstance: AxiosInstance,\n baseUrl: string,\n email: string,\n password: string,\n type: 'user' | 'client' = 'user'\n ) {\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n\n axiosRetry(this.axiosTokenInstance, {\n retries: 10,\n retryDelay: retryCount => {\n return Math.min(1000 * Math.pow(2, retryCount - 1), 30000)\n }\n })\n\n this.email = email\n this.password = password\n this.type = type\n this.axiosTokenInstance.defaults.baseURL = baseUrl\n }\n\n async initializeAuth() {\n const token = await this.login()\n\n this.authenticatedAxiosInstance.defaults.headers.common['X-Auth-Token'] = token\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n if (error.response?.status === 401 && originalRequest._retryCount < 1) {\n originalRequest._retryCount++\n try {\n if (!this.tokenRefreshPromise) {\n this.tokenRefreshPromise = this.login()\n }\n const newToken = await this.tokenRefreshPromise\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['X-Auth-Token'] =\n newToken\n\n return await this.authenticatedAxiosInstance(originalRequest)\n } catch (refreshError) {\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n private async login(): Promise<string> {\n const form = new FormData()\n form.append('email', this.email)\n form.append('password', this.password)\n form.append('type', this.type)\n\n const response = await this.axiosTokenInstance.post('v2/signin', form, {\n headers: form.getHeaders()\n })\n const token = response?.data?.data?.token\n if (!token) {\n throw new Error('Authentication failed: no token return')\n }\n this.token = token\n return token\n }\n}\n","import type { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../../models'\n\ninterface LiphePractitioner {\n id: number\n firstname: string\n lastname: string\n email: string\n communicationMode?: number\n}\n\nexport class LiphePractitionerClient {\n private axios: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axios = axiosInstance\n }\n async fetchAllPractitioners(agencyId: number = 1): Promise<Practitioner[]> {\n let practitioners: LiphePractitioner[] = []\n let page = 1\n let nextPage = true\n\n while (nextPage) {\n const response = await this.axios.get('v2/employees', {\n params: {\n agency_id: agencyId,\n page\n }\n })\n const data = response?.data?.data\n if (!data?.data || !Array.isArray(data.data)) {\n throw new Error('Unexpected responses.')\n }\n\n const pagePractitioners = data.data.map(\n (p: any): LiphePractitioner => ({\n id: p.id,\n firstname: p.firstname,\n lastname: p.lastname,\n email: p.email,\n communicationMode: p.communicationMode\n })\n )\n\n practitioners.push(...pagePractitioners)\n nextPage = Boolean(data.next_page_url)\n page++\n }\n return practitioners.map(p => ({\n id: String(p.id),\n firstName: p.firstname,\n lastName: p.lastname,\n email: p.email,\n staffId: String(p.id)\n }))\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Agency, Period, Workorder } from '../../../models'\nimport { LipheContractRequest } from '../contract_request/contractRequestClient'\nimport { LipheAssignment } from '../assignment/assignmentClient'\ninterface LipheContractRequestPeriods {\n message: string\n status: boolean\n data: LipheContractRequestPeriodData[]\n meta: {\n current_page: number\n from: number\n last_page: number\n path: string\n per_page: number\n to: number\n total: number\n }\n}\n\ninterface LipheContractRequestPeriod {\n message: string\n status: boolean\n data: LipheContractRequestPeriodData\n meta: {\n current_page: number\n from: number\n last_page: number\n path: string\n per_page: number\n to: number\n total: number\n }\n}\n\ninterface LipheContractRequestPeriodData {\n id: number\n contract_request_id: number\n start_date: Date\n end_date: Date\n shift: 'morning' | 'afternoon' | 'evening' | 'night'\n start_time: Date\n end_time: Date\n departement_id: number\n note: string\n assignment_id: number\n assignment_parent_id: number | null\n created_at: Date\n updated_at: Date\n contract_request: LipheContractRequest\n department: string | null\n assignment: LipheAssignment\n assigned_employee_details: UserDetails\n assignment_employee: any\n}\n\ninterface UserDetails {\n id: number\n name: string\n email: string | null\n}\n\nexport class ContractRequestPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchAllContractRequestPeriods(\n agencyId: Agency,\n from?: Date,\n to?: Date,\n page: number = 1,\n activeAssignationsOnly: boolean = true,\n assignedPractitionerId?: string\n ): Promise<Workorder[]> {\n const url = `v2/contract-request-periods/agency/${agencyId}`\n const params = new URLSearchParams()\n const periods: Workorder[] = []\n let nextPage = true\n\n if (from) {\n params.append('from', from.toISOString().split('T')[0] + ' 00:00:00')\n }\n if (to) {\n params.append('to', to.toISOString().split('T')[0] + ' 23:59:59')\n }\n if (page) {\n params.append('page', page.toString())\n }\n if (activeAssignationsOnly) {\n params.append('active_assignations_only', activeAssignationsOnly ? '1' : '0')\n }\n\n if (assignedPractitionerId) {\n params.append('assigned_employee_id', assignedPractitionerId)\n }\n\n while (nextPage) {\n params.set('page', page.toString())\n\n const response = await this.axiosInstance.get<LipheContractRequestPeriods>(url, {\n params\n })\n\n for (const period of response.data.data) {\n periods.push({\n id: period.id.toString(),\n name: period.id.toString(),\n establishmentId: period.contract_request.community.id.toString(),\n region: period.contract_request.community.contact.address_state,\n establishmentName: period.contract_request.community.name,\n role: this.getRole(period),\n practitionerId: period.assignment.selected_client.id,\n startDate: new Date(period.start_date),\n endDate: new Date(period.end_date),\n createdAt: new Date(period.created_at),\n updatedAt: new Date(period.updated_at)\n })\n }\n\n nextPage = page < response.data.meta.last_page\n page++\n }\n\n return periods\n }\n\n async fetchContractRequestPeriod(workorderId: string) {\n const url = `v2/contract-request-periods/${workorderId}`\n const params = new URLSearchParams()\n const response = await this.axiosInstance.get<LipheContractRequestPeriod>(url, { params })\n\n return response.data.data\n }\n\n async getPayPeriodDatesForPayPeriodId(payPeriodId: string): Promise<Period[]> {\n const period = await this.fetchContractRequestPeriod(payPeriodId)\n const payPeriods: {\n payPeriodId: string\n startDate: string\n endDate: string\n workorderId: string\n }[] = []\n\n const firstPayPeriodDate = this.getPayPeriodDayBeforeStartDate(\n new Date(period.assignment.selected_client.agency.date_first_periode_paie),\n new Date(period.start_date)\n )\n\n const lastPayPeriodDate = this.getLastDayOfPayPeriod(\n new Date(firstPayPeriodDate),\n new Date(period.end_date)\n )\n\n // Calculate the number of weeks between lastPayPeriodDate and firstPayPeriodDate\n const weeksBetween = this.calculateWeeksBetween(firstPayPeriodDate, lastPayPeriodDate)\n\n for (let i = 0; i < weeksBetween; i++) {\n const tempDate = new Date(firstPayPeriodDate)\n\n const startDate = new Date(tempDate.setDate(tempDate.getDate() + 7 * i))\n const endDate = new Date(tempDate.setDate(tempDate.getDate() + 6))\n\n payPeriods.push({\n payPeriodId: '',\n startDate: startDate.toISOString().split('T')[0],\n endDate: endDate.toISOString().split('T')[0],\n workorderId: payPeriodId\n })\n }\n\n return payPeriods as unknown as Period[]\n }\n\n private getRole(period: LipheContractRequestPeriodData) {\n if (period.contract_request.job.translations.length === 0) {\n return ''\n }\n\n if (period.contract_request.job.translations.length > 1) {\n const roleTranslation = period.contract_request.job.translations.find(\n (translation: any) => translation.locale === 'en'\n )\n return roleTranslation?.content\n } else {\n return period.contract_request.job.translations[0].content\n }\n }\n\n /**\n * Calculates the pay period day of week that comes before the start date\n * @param firstPayPeriodDate The first pay period date from the agency\n * @param startDate The start date to find the pay period before\n * @returns The day of week (0-6, where 0 is Sunday) of the pay period before start_date\n */\n private getPayPeriodDayBeforeStartDate(firstPayPeriodDate: Date, startDate: Date): Date {\n const payPeriodDayOfWeek = firstPayPeriodDate.getDay()\n\n // Calculate the most recent pay period date that falls before start_date\n const tempDate = new Date(startDate)\n\n // Go back one week at a time until we find a date that matches the pay period day of week\n while (tempDate.getDay() !== payPeriodDayOfWeek) {\n tempDate.setDate(tempDate.getDate() - 1)\n }\n\n // If the calculated date is not before start_date, go back another week\n if (tempDate >= startDate) {\n tempDate.setDate(tempDate.getDate() - 7)\n }\n\n return tempDate\n }\n\n private getLastDayOfPayPeriod(firstPayPeriodDate: Date, endDate: Date): Date {\n const tempDate = new Date(firstPayPeriodDate)\n\n // Go back one week at a time until we find a date that matches the pay period day of week\n while (endDate > tempDate) {\n tempDate.setDate(tempDate.getDate() + 7)\n }\n\n return tempDate\n }\n\n private calculateWeeksBetween(startDate: Date, endDate: Date): number {\n const diffTime = Math.abs(endDate.getTime() - startDate.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n const weeks = Math.floor(diffDays / 7)\n return weeks\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { LipheAuthenticator } from './auth/authClient'\nimport { LiphePractitionerClient } from './practitioner/practitionerClient'\nimport { ContractRequestPeriodClient } from './contract_request_period/contractRequestPeriodClient'\nimport axiosRetry from 'axios-retry'\n\nexport class LipheApiClient {\n private instance: LipheApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: LipheAuthenticator\n public practitionerClient: LiphePractitionerClient\n public contractRequestPeriodClient: ContractRequestPeriodClient\n\n constructor(\n baseUrl: string,\n email: string,\n password: string,\n type: 'user' | 'client' = 'user'\n ) {\n this.axiosInstance.defaults.baseURL = baseUrl\n\n this.authenticator = new LipheAuthenticator(\n this.axiosInstance,\n baseUrl,\n email,\n password,\n type\n )\n\n axiosRetry(this.axiosInstance, {\n retries: 10,\n retryDelay: retryCount => {\n return Math.min(1000 * Math.pow(2, retryCount - 1), 30000)\n },\n onRetry: (retryCount, error) => {\n console.log(`Retry attempt ${retryCount} failed: ${error.message}`)\n }\n })\n\n this.practitionerClient = new LiphePractitionerClient(this.axiosInstance)\n this.contractRequestPeriodClient = new ContractRequestPeriodClient(this.axiosInstance)\n }\n async init() {\n await this.authenticator.initializeAuth()\n }\n\n setInstance(instance: LipheApiClient) {\n this.instance = instance\n }\n\n getInstance(): LipheApiClient {\n return this.instance\n }\n\n getAxiosInstance(): AxiosInstance {\n return this.axiosInstance\n }\n}\n","export enum Agency {\n CHCA = \"7\",\n CodeBleu = \"5\",\n NordikOntario = \"6\",\n PHA = \"8\",\n PremierSoin = \"1\",\n PremierSoinNordik = \"3\",\n SolutionNursing = \"4\",\n SolutionsStaffing = \"9\",\n Transport = \"2\",\n SSI = \"99\"\n}\n\nexport * from './timesheet'\nexport * from './user'\nexport * from './workorder'\n","export enum LipheRegion {\n 'Abitibi-Témiscaminque',\n 'Alberta',\n 'Autre',\n 'Baie d\\'Hudson',\n 'Baie James',\n 'Bas St-Laurent',\n 'British Columbia',\n 'Charlevoix',\n 'Estrie',\n 'Gaspésie',\n 'Haut St-Maurice',\n 'Iles de la Madeleine',\n 'Lanaudière',\n 'Laurentides',\n 'Laval',\n 'Manitoba',\n 'Mauricie',\n 'Montérégie',\n 'Montréal',\n 'New Brunswick',\n 'Newfoundland and Labrador',\n 'Northwest Territories',\n 'Nova Scotia',\n 'Nunavut',\n 'Ontario',\n 'Outaouais',\n 'Prince Edward Island',\n 'Québec',\n 'Rivière du Loup / Matane',\n 'Saguenay',\n 'Saskatchewan',\n 'Sept-Iles / Côte-Nord',\n 'Thetford Mines',\n 'Ungava',\n 'Yukon',\n}\n\nexport enum LipheGeographicalArea {\n 'Berthierville',\n 'Bordeaux-Cartierville',\n 'Labelle',\n 'Laval',\n 'Le Gardeur',\n 'Lindsay - Gingras',\n 'Montréal',\n 'Montréal - Est',\n 'Montréal - Ouest',\n 'Outaouais',\n 'Rive - Sud',\n 'Ste - Adèle',\n 'Ste - Agathe',\n 'St - Eustache',\n 'St - Jérôme',\n 'Verdun',\n 'Mont - Tremblant',\n 'Montréal(centre - ville)',\n 'Basses Laurentides',\n 'Valleyfield',\n 'Argenteuil',\n 'Lachute',\n 'Lanaudière SUD',\n 'Lanaudière NORD',\n 'Granby',\n 'Sorel',\n 'Longueuil',\n 'Châteauguay',\n 'St - Jean sur Richelieu',\n 'St - Hyacinthe',\n 'Drummondville',\n 'Blainville',\n 'La Prairie',\n 'Mont - Laurier',\n 'Pierre - Boucher',\n 'Berthiaume du Tremblay',\n 'Grand Nord',\n 'Montréal Nord',\n 'Rouyn Noranda',\n 'Chicoutimi',\n 'Québec',\n 'Sherbrooke',\n 'Trois - Rivières',\n 'Gaspésie',\n 'Côte - Nord',\n 'Abitibi - Témiscamingue',\n 'Portneuf',\n 'Charlevoix',\n 'CHUQ',\n 'Thetford Mines',\n 'Chaudière - Appalaches',\n 'Saint - Raymond',\n 'Limoilou',\n 'Ancienne - Lorette',\n 'Malbaie',\n 'Baie - Saint - Paul',\n 'St - Anne de Beaupré',\n 'Loretteville',\n 'Valcartier',\n 'Rivière - du - Loup',\n 'Maria',\n 'Manicouagan',\n 'Sept - Iles',\n 'Basse - Côte - Nord',\n 'Port - Cartier',\n 'Sherfferville',\n 'Minganie',\n 'Natashquan',\n 'Chibougamau',\n 'Mauricie',\n 'Maskinongé',\n 'Parent',\n 'Mémphrémagog',\n 'Coaticook',\n 'Victoriaville',\n 'Rimouski',\n 'Shawinigan',\n 'Matane',\n 'Santa - Cabrini',\n 'Marie - Clarac',\n 'Hôpital lachine',\n 'Rivière - Rouge',\n 'Jeanne - Mance',\n 'Le Repair',\n 'Montérégie',\n 'Estrie',\n 'Villa - Medica',\n 'Laurentides',\n 'Hors - Qc',\n 'Hors - Can',\n 'Hors Pays',\n 'Hors Province',\n 'Baie James',\n 'Nunavut',\n 'Ungava',\n 'Inuulitsivik',\n 'Bas Saint - Laurent',\n 'Lévis',\n 'Îles de la Madeleine',\n 'Saguenay',\n 'Alberta',\n 'British Columbia',\n 'Yukon',\n 'Northwest Territories',\n 'Saskatchewan',\n 'Manitoba',\n 'Ontario',\n 'New Brunswick',\n 'Newfoundland and Labrador',\n 'Prince Edward Island',\n 'Nova Scotia',\n}\n\nexport enum Province {\n AB = 'AB',\n BC = 'BC',\n MB = 'MB',\n NB = 'NB',\n NL = 'NL',\n NS = 'NS',\n NT = 'NT',\n NU = 'NU',\n ON = 'ON',\n PE = 'PE',\n QC = 'QC',\n SK = 'SK',\n YT = 'YT'\n}\n\n","export const SF_API_VERSION: string = 'v57.0'\n\n// Salesforce API\nexport { SFApiClient } from './api/salesforce/apiClient'\nexport { SFPractitionerClient } from './api/salesforce/practitioner/practitionerClient'\nexport { SFTimesheetClient } from './api/salesforce/timesheet/timesheetClient'\nexport { SFAuthenticator } from './api/salesforce/auth/auth'\nexport { SFPriceClient } from './api/salesforce/prices/priceClient'\nexport { SFExpenseClient } from './api/salesforce/expenses/expenseClient'\n\n// Liphe API\nexport { LipheApiClient } from './api/liphe_legacy/lipheApiClient'\nexport { LipheAuthenticator } from './api/liphe_legacy/auth/authClient'\nexport { LiphePractitionerClient } from './api/liphe_legacy/practitioner/practitionerClient'\n\n// Common Models\nexport { Practitioner, Role, TimesheetDayEntry, Workorder, Agency, Period } from './models'\nexport { LipheRegion, Province, LipheGeographicalArea } from './models/regions'"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","clientId","clientSecret","onTokenRefresh","_this","token","wrap","_callee2$","_context2","prev","next","postToken","sent","headers","common","interceptors","response","use","_ref","_callee","error","_error$response","originalRequest","newClientCredentials","newClientId","newClientSecret","newToken","_callee$","_context","config","_retryCount","status","tokenRefreshPromise","timeout","Promise","race","_","reject","setTimeout","Error","abrupt","t0","stop","_x4","apply","arguments","_x","_x2","_x3","_postToken","_callee3","_response$data","tokenFormRequestBody","_callee3$","_context3","FormData","refreshToken","append","post","getHeaders","data","_x5","_x6","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","console","message","getTimesheetIds","_getTimesheetIds","workorderId","periodStartDate","periodEndDate","query","_yield$this$axiosInst","records","Date","toISOString","substring","get","params","q","map","record","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","value","push","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHours","_getTimesheetHours","_callee4","fields","timesheetIds","allHours","_iterator2","_step2","timesheetId","_yield$this$axiosInst2","_callee4$","_context4","join","length","toTimesheetDayEntry","_x7","_x8","_x9","_x10","getPayPeriods","_getPayPeriods","_callee5","payPeriods","_iterator3","_step3","payPeriod","_callee5$","_context5","name","Name","startDate","StartDate__c","endDate","EndDate__c","uploadImageToTimesheet","_uploadImageToTimesheet","_callee6","file","filename","form","uploadRes","versionId","_yield$this$axiosInst3","contentDocumentId","_err$response","_callee6$","_context6","JSON","stringify","Title","PathOnClient","contentType","ContentDocumentId","LinkedEntityId","ShareType","Visibility","_x11","_x12","_x13","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","options","conditions","whereClause","limitClause","pageRecords","nextRecordsUrl","isDone","createdAt","limit","Math","floor","forExport","PRACTITIONER_FIELDS","toPractitionerExport","toPractitioner","fetchPractitionerByEmail","_fetchPractitionerByEmail","email","fetchRoles","_fetchRoles","then","label","Label","Value","firstName","FirstName__c","lastName","LastName__c","Email__c","staffId","StaffID__c","CreatedDate","replace","_extends","phone","DaytimePhone__c","Status__c","professionalDesignation","ProfessionalDesignation__c","SIN","CANSocialInsuranceNumber__c","hiringDate","Date_of_Hire__c","dateApplied","DateApplied__c","birthdate","Birthdate__c","mailingStreetAddress","MailingStreetAddress__c","mailingCity","MailingCity__c","mailingProvince","MailingStateProvince__c","mailingZip","MailingZipPostalCode__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","_options$provinces","filters","isoStart","isoEnd","_options$provinces2","provincesList","split","provinces","p","establishmentId","HospitalID__c","region","Region__c","establishmentName","HospitalName__c","role","Personnel__c","startdate__c","unit","formatString","Unit__c","externalUnitId","formatId","healthAuthority","HealthAuthority__c","externalHealthAuthorityId","price","UnitPrice__r","Price__c","travelInTime","TravelDate__c","travelOutTime","ReturnDate__c","unformattedUnit","trim","htmlString","hrefMatch","match","SFPayPeriodClient","getPayPeriodAndTimesheetIdsForWorkorder","_getPayPeriodAndTimesheetIdsForWorkorder","workorderID","payPeriodIds","payPeriodId","PayPeriod__c","getPayPeriodDatesForPayPeriodIds","_getPayPeriodDatesForPayPeriodIds","payPeriodIDs","payPeriodDates","listOfIdsForQuery","EXPENSE_FIELD_MAP","Lodging","Other","Transportation","SFExpenseClient","fetchExpenseTotals","_fetchExpenseTotals","toExpense","patchTimesheet","_patchTimesheet","body","res","updateExpense","_updateExpense","expense","_this$patchTimesheet","submittedValue","field","workorderPeriodId","Number","type","reimbursable","_raw$Reimburseable_Ex","Reimburseable_Expenses__c","perDiem","_raw$Per_Diem_Total__","Per_Diem_Total__c","lodging","_raw$StipendTotalOver","StipendTotalOverride__c","transportation","_raw$TaxiAmount__c","TaxiAmount__c","SFPriceClient","getPriceListByWorkorderId","_getPriceListByWorkorderId","_record$UnitPrice__r","_record$UnitPrice__r2","_record$UnitPrice__r3","_record$UnitPrice__r4","_record$UnitPrice__r5","_record$UnitPrice__r6","_record$UnitPrice__r7","_record$UnitPrice__r8","_record$UnitPrice__r9","_record$UnitPrice__r10","_record$UnitPrice__r11","_record$UnitPrice__r12","_record$UnitPrice__r13","_record$UnitPrice__r14","_record$UnitPrice__r15","_record$UnitPrice__r16","Price__r","mileageBillingRate","MileageBillingRate__c","mileageWageRate","MileageWageRate__c","regularBillingRate","BillingRate__c","regularWageRate","WageRate__c","overtime1BillingRate","Overtime1BillingRate__c","overtime1WageRate","Overtime1WageRate__c","overtime2BillingRate","Overtime2BillingRate__c","overtime2WageRate","Overtime2WageRate__c","callbackBillingRate","CallBackBillingRate__c","callbackWageRate","CallBackWageRate__c","onCallBillingRate","OnCallBillingRate__c","onCallWageRate","OnCallWageRate__c","additionalBillingInfo","Additional_Billing_Information__c","additionalWageInfo","Additional_Wage_Information__c","ACCOUNT_FIELDS","SFAccounts","fetchAccounts","_fetchAccounts","accountType","accounts","i","parentId","active","buildAccount","t1","keys","t2","accountTypeName","children","t3","failfast","Type","address","_record$BillingAddres","_record$BillingAddres2","BillingAddress","filter","Boolean","city","BillingCity","province","BillingState","postalCode","BillingPostalCode","geographicalAreaName","BillingGeocodeAccuracy","Phone","fax","Fax","regionName","RegionName","phone2","cellular","lang","clientNumber","Client_Number__c","SFApiClient","init","_init","sfClientId","sfClientSecret","authenticator","timesheetClient","workorderClient","practitionerClient","payPeriodClient","expenseClient","priceClient","accountsClient","setInstance","instance","getInstance","LipheAuthenticator","password","axiosRetry","retries","retryDelay","retryCount","min","pow","login","_login","LiphePractitionerClient","fetchAllPractitioners","_fetchAllPractitioners","agencyId","practitioners","page","nextPage","agency_id","Array","isArray","pagePractitioners","firstname","lastname","communicationMode","next_page_url","String","ContractRequestPeriodClient","fetchAllContractRequestPeriods","_fetchAllContractRequestPeriods","from","to","activeAssignationsOnly","assignedPractitionerId","periods","period","URLSearchParams","toString","set","contract_request","community","contact","address_state","getRole","assignment","selected_client","start_date","end_date","created_at","updated_at","meta","last_page","fetchContractRequestPeriod","_fetchContractRequestPeriod","getPayPeriodDatesForPayPeriodId","_getPayPeriodDatesForPayPeriodId","firstPayPeriodDate","lastPayPeriodDate","weeksBetween","tempDate","getPayPeriodDayBeforeStartDate","agency","date_first_periode_paie","getLastDayOfPayPeriod","calculateWeeksBetween","setDate","getDate","job","translations","roleTranslation","find","translation","locale","content","payPeriodDayOfWeek","getDay","diffTime","abs","getTime","diffDays","ceil","weeks","LipheApiClient","onRetry","log","contractRequestPeriodClient","getAxiosInstance","Agency","LipheRegion","LipheGeographicalArea","Province"],"mappings":"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"}
|