pha-hermes 1.0.5 → 1.1.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/models/index.d.ts +5 -0
- package/dist/pha-hermes.cjs.development.js +7 -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 +7 -2
- package/dist/pha-hermes.esm.js.map +1 -1
- package/package.json +7 -4
- package/src/api/apiClient.ts +14 -4
- package/src/api/auth/auth.ts +48 -48
- package/src/api/timesheet/timesheetClient.ts +98 -98
- package/src/models/index.ts +5 -0
- package/src/models/practitioner.ts +1 -1
- package/src/models/timesheet.ts +21 -21
package/dist/models/index.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export interface Workorder {
|
|
|
7
7
|
establishmentName: string;
|
|
8
8
|
establishmentId: string;
|
|
9
9
|
role: string;
|
|
10
|
+
assignedStaffId: string;
|
|
11
|
+
startDate: Date;
|
|
12
|
+
endDate: Date;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
updatedAt: Date;
|
|
10
15
|
}
|
|
11
16
|
export * from './timesheet';
|
|
12
17
|
export * from './practitioner';
|
|
@@ -705,7 +705,7 @@ var SFApiClient = /*#__PURE__*/function () {
|
|
|
705
705
|
case 0:
|
|
706
706
|
_context2.prev = 0;
|
|
707
707
|
url = "/services/data/" + SF_API_VERSION + "/query";
|
|
708
|
-
query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c";
|
|
708
|
+
query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c";
|
|
709
709
|
_context2.next = 5;
|
|
710
710
|
return this.axiosInstance.get(url, {
|
|
711
711
|
params: {
|
|
@@ -718,7 +718,12 @@ var SFApiClient = /*#__PURE__*/function () {
|
|
|
718
718
|
id: record.Id,
|
|
719
719
|
establishmentId: record.HospitalID__c,
|
|
720
720
|
establishmentName: record.HospitalName__c,
|
|
721
|
-
role: record.ProfessionalDesignation__c
|
|
721
|
+
role: record.ProfessionalDesignation__c,
|
|
722
|
+
assignedStaffId: record.Personnel__c,
|
|
723
|
+
startDate: new Date(record.startdate__c),
|
|
724
|
+
endDate: new Date(record.EndDate__c),
|
|
725
|
+
createdAt: new Date(record.CreatedDate),
|
|
726
|
+
updatedAt: new Date(record.LastModifiedDate)
|
|
722
727
|
};
|
|
723
728
|
});
|
|
724
729
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pha-hermes.cjs.development.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pha-hermes.cjs.development.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.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\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\n this.axiosTokenInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(clientId: string, clientSecret: string) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\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\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\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 '../apiClient'\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 getTimesheetId(workorderId: string): Promise<string> {\n // First we find the correct timesheet id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records[0].Id\n }\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetId = await this.getTimesheetId(workorderId)\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(({ Id }) => Id)\n }\n\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\n return Promise.all(\n timesheetHourIds.map(async id =>\n this.axiosInstance\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\n .then(res => res.data)\n .then(toTimesheetDayEntry)\n )\n )\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\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 }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n assignedStaffId: 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 })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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 }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startDate","Date","startdate__c","endDate","EndDate__c","createdAt","CreatedDate","updatedAt","LastModifiedDate","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e,r,n,o,a,i){try{var s=t[a](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(o,a){var i=t.apply(e,r);function s(t){n(i,o,a,s,c,"next",t)}function c(t){n(i,o,a,s,c,"throw",t)}s(void 0)}))}}function a(){a=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new S(n||[]);return o(a,"_invoke",{value:I(t,r,i)}),a}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var p="suspendedStart",_="executing",d="completed",v={};function m(){}function y(){}function g(){}var w={};h(w,s,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(P([])));b&&b!==r&&n.call(b,s)&&(w=b);var H=g.prototype=m.prototype=Object.create(w);function E(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(o,a,i,s){var c=l(t[o],t,a);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){r("next",t,i,s)}),(function(t){r("throw",t,i,s)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,s)}))}s(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function I(e,r,n){var o=p;return function(a,i){if(o===_)throw Error("Generator is already running");if(o===d){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var s=n.delegate;if(s){var c=T(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=_;var u=l(e,r,n);if("normal"===u.type){if(o=n.done?d:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=d,n.method="throw",n.arg=u.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var a=l(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,v;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function P(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return y.prototype=g,o(H,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:y,configurable:!0}),y.displayName=h(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,h(t,u,"GeneratorFunction")),t.prototype=Object.create(H),t},e.awrap=function(t){return{__await:t}},E(k.prototype),h(k.prototype,c,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new k(f(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},E(H),h(H,u,"Generator"),h(H,s,(function(){return this})),h(H,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=P,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:P(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var i=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=o(a().mark((function t(e,r){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent;case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=o(a().mark((function t(e,n){var o,i,s;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new r,!this.refreshToken){t.next=6;break}i.append("refresh_token",this.refreshToken),i.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}i.append("client_id",e),i.append("client_secret",n),i.append("grant_type","client_credentials"),t.next=13;break;case 12:throw new Error("Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided");case 13:return t.next=15,this.axiosTokenInstance.post("/services/oauth2/token",i,{headers:i.getHeaders()});case 15:if(this.token=null==(s=t.sent)||null==(o=s.data)?void 0:o.access_token,this.token){t.next=19;break}throw new Error("Authentication failed, could not get the access token");case 19:return t.abrupt("return",this.token);case 20:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),t}(),s=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=o(a().mark((function t(e,r){var n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e,t.next=4,this.axiosInstance.patch(n,{Date__c:r.date,Callback__c:r.callbackHours,HoursEBAdjusted__c:r.regularHours,Misc__c:r.miscHours,OT1__c:r.overtime1Hours,OT2__c:r.overtime2Hours,OnCall__c:r.onCallHours,Misc1__c:r.misc1HoursA,Misc_1_Hours__c:r.misc1HoursB,Misc_2_Hours__c:r.misc2Hours,Misc_3_Hours__c:r.misc3Hours,Misc_4_Hours__c:r.misc4Hours,Stat1__c:r.stat1Hours,Stat2__c:r.stat2Hours,In_Charge__c:r.inChargeHours,Shift_Travel_Stipend__c:r.shiftTravelPerDiemHours});case 4:if([200,204,304].includes((o=t.sent).status)){t.next=7;break}throw new Error("got error status code "+o.status);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),console.error("Error Updating Timesheet Hour: ",t.t0.message);case 12:case"end":return t.stop()}}),t,this,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetId=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+f+"/query",n="SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '"+e+"' LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+f+"/query",n="SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=o(a().mark((function t(e){var r=this;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetHoursIds(e);case 2:return t.abrupt("return",Promise.all(t.sent.map(function(){var t=o(a().mark((function t(e){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(c));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())));case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}();function c(t){return{date:t.Date__c,callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c}}var u=function(){function t(t){this.axiosInstance=t}return t.prototype.fetchPractitioners=function(){var t=o(a().mark((function t(){var e;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+f+"/query",t.next=5,this.axiosInstance.get(e,{params:{q:"\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n "}});case 5:return t.abrupt("return",t.sent.data.records.map(h));case 10:throw t.prev=10,t.t0=t.catch(0),console.error("Error fetching practitioners: ",t.t0.message),t.t0;case 14:case"end":return t.stop()}}),t,this,[[0,10]])})));return function(){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var f="v57.0";exports.SFApiClient=function(){function t(t){this.instance=void 0,this.axiosInstance=e.create(),this.baseUrl=t,this.axiosInstance.defaults.baseURL=null!=t?t:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticator=new i(this.axiosInstance,this.baseUrl),this.timesheetClient=new s(this.axiosInstance),this.practitionerClient=new u(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=o(a().mark((function t(e,r){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchWorkOrders=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+f+"/query",n=e?"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c",t.next=5,this.axiosInstance.get(r,{params:{q:n}}).then((function(t){return t.data.records.map((function(t){return{id:t.Id,establishmentId:t.HospitalID__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c}}))}));case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error fetching work orders: ",t.t0.message),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])})));return function(e){return t.apply(this,arguments)}}(),r.fetchRoles=function(){var t=o(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+f+"/query",{params:{q:"SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true"}}).then((function(t){return t.data.records.map((function(t){return{label:t.Label,value:t.Value}}))})));case 6:throw t.prev=6,t.t0=t.catch(0),console.error("Error fetching roles: ",t.t0.message),t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),t}(),exports.SFAuthenticator=i,exports.SFPractitionerClient=u,exports.SFTimesheetClient=s;
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e,r,n,a,o,i){try{var s=t[o](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,a)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(a,o){var i=t.apply(e,r);function s(t){n(i,a,o,s,c,"next",t)}function c(t){n(i,a,o,s,c,"throw",t)}s(void 0)}))}}function o(){o=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var o=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new D(n||[]);return a(o,"_invoke",{value:I(t,r,i)}),o}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var p="suspendedStart",d="executing",_="completed",v={};function m(){}function y(){}function g(){}var w={};h(w,s,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(S([])));E&&E!==r&&n.call(E,s)&&(w=E);var b=g.prototype=m.prototype=Object.create(w);function H(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(a,o,i,s){var c=l(t[a],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){r("next",t,i,s)}),(function(t){r("throw",t,i,s)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,s)}))}s(c.arg)}var o;a(this,"_invoke",{value:function(t,n){function a(){return new e((function(e,a){r(t,n,e,a)}))}return o=o?o.then(a,a):a()}})}function I(e,r,n){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===_){if("throw"===o)throw i;return{value:t,done:!0}}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var c=L(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===p)throw a=_,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=d;var u=l(e,r,n);if("normal"===u.type){if(a=n.done?_:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(a=_,n.method="throw",n.arg=u.arg)}}}function L(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=l(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function D(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function S(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,o=function r(){for(;++a<e.length;)if(n.call(e,a))return r.value=e[a],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return y.prototype=g,a(b,"constructor",{value:g,configurable:!0}),a(g,"constructor",{value:y,configurable:!0}),y.displayName=h(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,h(t,u,"GeneratorFunction")),t.prototype=Object.create(b),t},e.awrap=function(t){return{__await:t}},H(k.prototype),h(k.prototype,c,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new k(f(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},H(b),h(b,u,"Generator"),h(b,s,(function(){return this})),h(b,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=S,D.prototype={constructor:D,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function a(n,a){return s.type="throw",s.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;O(r)}return a}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:S(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var i=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=a(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent;case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=a(o().mark((function t(e,n){var a,i,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new r,!this.refreshToken){t.next=6;break}i.append("refresh_token",this.refreshToken),i.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}i.append("client_id",e),i.append("client_secret",n),i.append("grant_type","client_credentials"),t.next=13;break;case 12:throw new Error("Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided");case 13:return t.next=15,this.axiosTokenInstance.post("/services/oauth2/token",i,{headers:i.getHeaders()});case 15:if(this.token=null==(s=t.sent)||null==(a=s.data)?void 0:a.access_token,this.token){t.next=19;break}throw new Error("Authentication failed, could not get the access token");case 19:return t.abrupt("return",this.token);case 20:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),t}(),s=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=a(o().mark((function t(e,r){var n,a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e,t.next=4,this.axiosInstance.patch(n,{Date__c:r.date,Callback__c:r.callbackHours,HoursEBAdjusted__c:r.regularHours,Misc__c:r.miscHours,OT1__c:r.overtime1Hours,OT2__c:r.overtime2Hours,OnCall__c:r.onCallHours,Misc1__c:r.misc1HoursA,Misc_1_Hours__c:r.misc1HoursB,Misc_2_Hours__c:r.misc2Hours,Misc_3_Hours__c:r.misc3Hours,Misc_4_Hours__c:r.misc4Hours,Stat1__c:r.stat1Hours,Stat2__c:r.stat2Hours,In_Charge__c:r.inChargeHours,Shift_Travel_Stipend__c:r.shiftTravelPerDiemHours});case 4:if([200,204,304].includes((a=t.sent).status)){t.next=7;break}throw new Error("got error status code "+a.status);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),console.error("Error Updating Timesheet Hour: ",t.t0.message);case 12:case"end":return t.stop()}}),t,this,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetId=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+f+"/query",n="SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '"+e+"' LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+f+"/query",n="SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=a(o().mark((function t(e){var r=this;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetHoursIds(e);case 2:return t.abrupt("return",Promise.all(t.sent.map(function(){var t=a(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(c));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())));case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}();function c(t){return{date:t.Date__c,callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c}}var u=function(){function t(t){this.axiosInstance=t}return t.prototype.fetchPractitioners=function(){var t=a(o().mark((function t(){var e;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+f+"/query",t.next=5,this.axiosInstance.get(e,{params:{q:"\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n "}});case 5:return t.abrupt("return",t.sent.data.records.map(h));case 10:throw t.prev=10,t.t0=t.catch(0),console.error("Error fetching practitioners: ",t.t0.message),t.t0;case 14:case"end":return t.stop()}}),t,this,[[0,10]])})));return function(){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var f="v57.0";exports.SFApiClient=function(){function t(t){this.instance=void 0,this.axiosInstance=e.create(),this.baseUrl=t,this.axiosInstance.defaults.baseURL=null!=t?t:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticator=new i(this.axiosInstance,this.baseUrl),this.timesheetClient=new s(this.axiosInstance),this.practitionerClient=new u(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=a(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchWorkOrders=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+f+"/query",n=e?"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c",t.next=5,this.axiosInstance.get(r,{params:{q:n}}).then((function(t){return t.data.records.map((function(t){return{id:t.Id,establishmentId:t.HospitalID__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c,assignedStaffId:t.Personnel__c,startDate:new Date(t.startdate__c),endDate:new Date(t.EndDate__c),createdAt:new Date(t.CreatedDate),updatedAt:new Date(t.LastModifiedDate)}}))}));case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error fetching work orders: ",t.t0.message),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])})));return function(e){return t.apply(this,arguments)}}(),r.fetchRoles=function(){var t=a(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+f+"/query",{params:{q:"SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true"}}).then((function(t){return t.data.records.map((function(t){return{label:t.Label,value:t.Value}}))})));case 6:throw t.prev=6,t.t0=t.catch(0),console.error("Error fetching roles: ",t.t0.message),t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),t}(),exports.SFAuthenticator=i,exports.SFPractitionerClient=u,exports.SFTimesheetClient=s;
|
|
2
2
|
//# sourceMappingURL=pha-hermes.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pha-hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","wrap","_context","prev","next","postToken","headers","common","sent","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_context2","FormData","refreshToken","append","Error","post","getHeaders","token","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","_context5","Promise","all","_ref2","_callee4","id","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pha-hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.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\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\n this.axiosTokenInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(clientId: string, clientSecret: string) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\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\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\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 '../apiClient'\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 getTimesheetId(workorderId: string): Promise<string> {\n // First we find the correct timesheet id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records[0].Id\n }\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetId = await this.getTimesheetId(workorderId)\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(({ Id }) => Id)\n }\n\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\n return Promise.all(\n timesheetHourIds.map(async id =>\n this.axiosInstance\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\n .then(res => res.data)\n .then(toTimesheetDayEntry)\n )\n )\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\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 }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n assignedStaffId: 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 })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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 }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","wrap","_context","prev","next","postToken","headers","common","sent","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_context2","FormData","refreshToken","append","Error","post","getHeaders","token","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","_context5","Promise","all","_ref2","_callee4","id","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startDate","Date","startdate__c","endDate","EndDate__c","createdAt","CreatedDate","updatedAt","LastModifiedDate","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
package/dist/pha-hermes.esm.js
CHANGED
|
@@ -699,7 +699,7 @@ var SFApiClient = /*#__PURE__*/function () {
|
|
|
699
699
|
case 0:
|
|
700
700
|
_context2.prev = 0;
|
|
701
701
|
url = "/services/data/" + SF_API_VERSION + "/query";
|
|
702
|
-
query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c";
|
|
702
|
+
query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c";
|
|
703
703
|
_context2.next = 5;
|
|
704
704
|
return this.axiosInstance.get(url, {
|
|
705
705
|
params: {
|
|
@@ -712,7 +712,12 @@ var SFApiClient = /*#__PURE__*/function () {
|
|
|
712
712
|
id: record.Id,
|
|
713
713
|
establishmentId: record.HospitalID__c,
|
|
714
714
|
establishmentName: record.HospitalName__c,
|
|
715
|
-
role: record.ProfessionalDesignation__c
|
|
715
|
+
role: record.ProfessionalDesignation__c,
|
|
716
|
+
assignedStaffId: record.Personnel__c,
|
|
717
|
+
startDate: new Date(record.startdate__c),
|
|
718
|
+
endDate: new Date(record.EndDate__c),
|
|
719
|
+
createdAt: new Date(record.CreatedDate),
|
|
720
|
+
updatedAt: new Date(record.LastModifiedDate)
|
|
716
721
|
};
|
|
717
722
|
});
|
|
718
723
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.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\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\n this.axiosTokenInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(clientId: string, clientSecret: string) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\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\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\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 '../apiClient'\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 getTimesheetId(workorderId: string): Promise<string> {\n // First we find the correct timesheet id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records[0].Id\n }\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetId = await this.getTimesheetId(workorderId)\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(({ Id }) => Id)\n }\n\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\n return Promise.all(\n timesheetHourIds.map(async id =>\n this.axiosInstance\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\n .then(res => res.data)\n .then(toTimesheetDayEntry)\n )\n )\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\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 }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\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\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', 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 }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\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 practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n assignedStaffId: 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 })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\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 }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","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","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startDate","Date","startdate__c","endDate","EndDate__c","createdAt","CreatedDate","updatedAt","LastModifiedDate","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"main": "dist/index.js",
|
|
4
4
|
"typings": "dist/index.d.ts",
|
|
5
5
|
"files": [
|
|
@@ -24,10 +24,13 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"prettier": {
|
|
27
|
-
"printWidth": 80,
|
|
28
|
-
"semi": true,
|
|
29
27
|
"singleQuote": true,
|
|
30
|
-
"trailingComma": "
|
|
28
|
+
"trailingComma": "none",
|
|
29
|
+
"printWidth": 100,
|
|
30
|
+
"semi": false,
|
|
31
|
+
"arrowParens": "avoid",
|
|
32
|
+
"bracketSpacing": true,
|
|
33
|
+
"tabWidth": 4
|
|
31
34
|
},
|
|
32
35
|
"name": "pha-hermes",
|
|
33
36
|
"author": "Pierre Seguin",
|
package/src/api/apiClient.ts
CHANGED
|
@@ -38,8 +38,8 @@ export class SFApiClient {
|
|
|
38
38
|
try {
|
|
39
39
|
const url = `/services/data/${SF_API_VERSION}/query`
|
|
40
40
|
const query = assignedStaffId
|
|
41
|
-
? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`
|
|
42
|
-
: `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`
|
|
41
|
+
? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`
|
|
42
|
+
: `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`
|
|
43
43
|
return await this.axiosInstance
|
|
44
44
|
.get(url, {
|
|
45
45
|
params: { q: query }
|
|
@@ -50,7 +50,12 @@ export class SFApiClient {
|
|
|
50
50
|
id: record.Id,
|
|
51
51
|
establishmentId: record.HospitalID__c,
|
|
52
52
|
establishmentName: record.HospitalName__c,
|
|
53
|
-
role: record.ProfessionalDesignation__c
|
|
53
|
+
role: record.ProfessionalDesignation__c,
|
|
54
|
+
assignedStaffId: record.Personnel__c,
|
|
55
|
+
startDate: new Date(record.startdate__c),
|
|
56
|
+
endDate: new Date(record.EndDate__c),
|
|
57
|
+
createdAt: new Date(record.CreatedDate),
|
|
58
|
+
updatedAt: new Date(record.LastModifiedDate)
|
|
54
59
|
})
|
|
55
60
|
)
|
|
56
61
|
)
|
|
@@ -72,7 +77,12 @@ export class SFApiClient {
|
|
|
72
77
|
params: { q: query }
|
|
73
78
|
})
|
|
74
79
|
.then(({ data: { records } }) =>
|
|
75
|
-
records.map(
|
|
80
|
+
records.map(
|
|
81
|
+
(record): Role => ({
|
|
82
|
+
label: record.Label,
|
|
83
|
+
value: record.Value
|
|
84
|
+
})
|
|
85
|
+
)
|
|
76
86
|
)
|
|
77
87
|
} catch (error) {
|
|
78
88
|
console.error('Error fetching roles: ', error.message)
|
package/src/api/auth/auth.ts
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import axios, { AxiosInstance } from 'axios'
|
|
2
|
-
import FormData from 'form-data'
|
|
3
|
-
|
|
4
|
-
export class SFAuthenticator {
|
|
5
|
-
axiosTokenInstance: AxiosInstance = axios.create()
|
|
6
|
-
authenticatedAxiosInstance: AxiosInstance
|
|
7
|
-
token: string | undefined = undefined
|
|
8
|
-
private refreshToken: string | undefined = undefined
|
|
9
|
-
|
|
10
|
-
constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {
|
|
11
|
-
this.axiosTokenInstance.defaults.baseURL =
|
|
12
|
-
baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'
|
|
13
|
-
this.authenticatedAxiosInstance = authenticatedAxiosInstance
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
async initializeAuth(clientId: string, clientSecret: string) {
|
|
17
|
-
const token = await this.postToken(clientId, clientSecret)
|
|
18
|
-
this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async postToken(clientId?: string, clientSecret?: string): Promise<string> {
|
|
22
|
-
const tokenFormRequestBody = new FormData()
|
|
23
|
-
if (this.refreshToken) {
|
|
24
|
-
tokenFormRequestBody.append('refresh_token', this.refreshToken)
|
|
25
|
-
tokenFormRequestBody.append('grant_type', 'refresh_token')
|
|
26
|
-
} else if (clientId && clientSecret) {
|
|
27
|
-
tokenFormRequestBody.append('client_id', clientId)
|
|
28
|
-
tokenFormRequestBody.append('client_secret', clientSecret)
|
|
29
|
-
tokenFormRequestBody.append('grant_type', 'client_credentials')
|
|
30
|
-
} else {
|
|
31
|
-
throw new Error(
|
|
32
|
-
'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'
|
|
33
|
-
)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const response = await this.axiosTokenInstance.post(
|
|
37
|
-
'/services/oauth2/token',
|
|
38
|
-
tokenFormRequestBody,
|
|
39
|
-
{
|
|
40
|
-
headers: tokenFormRequestBody.getHeaders()
|
|
41
|
-
}
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
this.token = response?.data?.['access_token']
|
|
45
|
-
if (!this.token) throw new Error('Authentication failed, could not get the access token')
|
|
46
|
-
return this.token
|
|
47
|
-
}
|
|
48
|
-
}
|
|
1
|
+
import axios, { AxiosInstance } from 'axios'
|
|
2
|
+
import FormData from 'form-data'
|
|
3
|
+
|
|
4
|
+
export class SFAuthenticator {
|
|
5
|
+
axiosTokenInstance: AxiosInstance = axios.create()
|
|
6
|
+
authenticatedAxiosInstance: AxiosInstance
|
|
7
|
+
token: string | undefined = undefined
|
|
8
|
+
private refreshToken: string | undefined = undefined
|
|
9
|
+
|
|
10
|
+
constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {
|
|
11
|
+
this.axiosTokenInstance.defaults.baseURL =
|
|
12
|
+
baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'
|
|
13
|
+
this.authenticatedAxiosInstance = authenticatedAxiosInstance
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async initializeAuth(clientId: string, clientSecret: string) {
|
|
17
|
+
const token = await this.postToken(clientId, clientSecret)
|
|
18
|
+
this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async postToken(clientId?: string, clientSecret?: string): Promise<string> {
|
|
22
|
+
const tokenFormRequestBody = new FormData()
|
|
23
|
+
if (this.refreshToken) {
|
|
24
|
+
tokenFormRequestBody.append('refresh_token', this.refreshToken)
|
|
25
|
+
tokenFormRequestBody.append('grant_type', 'refresh_token')
|
|
26
|
+
} else if (clientId && clientSecret) {
|
|
27
|
+
tokenFormRequestBody.append('client_id', clientId)
|
|
28
|
+
tokenFormRequestBody.append('client_secret', clientSecret)
|
|
29
|
+
tokenFormRequestBody.append('grant_type', 'client_credentials')
|
|
30
|
+
} else {
|
|
31
|
+
throw new Error(
|
|
32
|
+
'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const response = await this.axiosTokenInstance.post(
|
|
37
|
+
'/services/oauth2/token',
|
|
38
|
+
tokenFormRequestBody,
|
|
39
|
+
{
|
|
40
|
+
headers: tokenFormRequestBody.getHeaders()
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
this.token = response?.data?.['access_token']
|
|
45
|
+
if (!this.token) throw new Error('Authentication failed, could not get the access token')
|
|
46
|
+
return this.token
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import { AxiosInstance } from 'axios'
|
|
2
|
-
import { TimesheetDayEntry } from '../../models'
|
|
3
|
-
import { SF_API_VERSION } from '../apiClient'
|
|
4
|
-
|
|
5
|
-
export class SFTimesheetClient {
|
|
6
|
-
private axiosInstance: AxiosInstance
|
|
7
|
-
|
|
8
|
-
constructor(axiosInstance: AxiosInstance) {
|
|
9
|
-
this.axiosInstance = axiosInstance
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {
|
|
13
|
-
try {
|
|
14
|
-
const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`
|
|
15
|
-
const response = await this.axiosInstance.patch(url, {
|
|
16
|
-
Date__c: timesheet.date,
|
|
17
|
-
Callback__c: timesheet.callbackHours,
|
|
18
|
-
HoursEBAdjusted__c: timesheet.regularHours,
|
|
19
|
-
Misc__c: timesheet.miscHours,
|
|
20
|
-
OT1__c: timesheet.overtime1Hours,
|
|
21
|
-
OT2__c: timesheet.overtime2Hours,
|
|
22
|
-
OnCall__c: timesheet.onCallHours,
|
|
23
|
-
Misc1__c: timesheet.misc1HoursA,
|
|
24
|
-
Misc_1_Hours__c: timesheet.misc1HoursB,
|
|
25
|
-
Misc_2_Hours__c: timesheet.misc2Hours,
|
|
26
|
-
Misc_3_Hours__c: timesheet.misc3Hours,
|
|
27
|
-
Misc_4_Hours__c: timesheet.misc4Hours,
|
|
28
|
-
Stat1__c: timesheet.stat1Hours,
|
|
29
|
-
Stat2__c: timesheet.stat2Hours,
|
|
30
|
-
In_Charge__c: timesheet.inChargeHours,
|
|
31
|
-
Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
if (![200, 204, 304].includes(response.status))
|
|
35
|
-
throw new Error(`got error status code ${response.status}`)
|
|
36
|
-
} catch (error) {
|
|
37
|
-
console.error('Error Updating Timesheet Hour: ', error.message)
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async getTimesheetId(workorderId: string): Promise<string> {
|
|
42
|
-
// First we find the correct timesheet id
|
|
43
|
-
const url = `/services/data/${SF_API_VERSION}/query`
|
|
44
|
-
const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`
|
|
45
|
-
const {
|
|
46
|
-
data: { records }
|
|
47
|
-
} = await this.axiosInstance.get(url, {
|
|
48
|
-
params: { q: query }
|
|
49
|
-
})
|
|
50
|
-
return records[0].Id
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async getTimesheetHoursIds(workorderId: string): Promise<string[]> {
|
|
54
|
-
const timesheetId = await this.getTimesheetId(workorderId)
|
|
55
|
-
// First we find the correct timesheet hours id
|
|
56
|
-
const url = `/services/data/${SF_API_VERSION}/query`
|
|
57
|
-
const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`
|
|
58
|
-
const {
|
|
59
|
-
data: { records }
|
|
60
|
-
} = await this.axiosInstance.get(url, {
|
|
61
|
-
params: { q: query }
|
|
62
|
-
})
|
|
63
|
-
return records.map(({ Id }) => Id)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {
|
|
67
|
-
const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)
|
|
68
|
-
return Promise.all(
|
|
69
|
-
timesheetHourIds.map(async id =>
|
|
70
|
-
this.axiosInstance
|
|
71
|
-
.get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)
|
|
72
|
-
.then(res => res.data)
|
|
73
|
-
.then(toTimesheetDayEntry)
|
|
74
|
-
)
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function toTimesheetDayEntry(raw: any): TimesheetDayEntry {
|
|
80
|
-
return {
|
|
81
|
-
date: raw.Date__c,
|
|
82
|
-
callbackHours: raw.Callback__c,
|
|
83
|
-
regularHours: raw.HoursEBAdjusted__c,
|
|
84
|
-
miscHours: raw.Misc__c,
|
|
85
|
-
overtime1Hours: raw.OT1__c,
|
|
86
|
-
overtime2Hours: raw.OT2__c,
|
|
87
|
-
onCallHours: raw.OnCall__c,
|
|
88
|
-
misc1HoursA: raw.Misc1__c,
|
|
89
|
-
misc1HoursB: raw.Misc_1_Hours__c,
|
|
90
|
-
misc2Hours: raw.Misc_2_Hours__c,
|
|
91
|
-
misc3Hours: raw.Misc_3_Hours__c,
|
|
92
|
-
misc4Hours: raw.Misc_4_Hours__c,
|
|
93
|
-
stat1Hours: raw.Stat1__c,
|
|
94
|
-
stat2Hours: raw.Stat2__c,
|
|
95
|
-
inChargeHours: raw.In_Charge__c,
|
|
96
|
-
shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c
|
|
97
|
-
}
|
|
98
|
-
}
|
|
1
|
+
import { AxiosInstance } from 'axios'
|
|
2
|
+
import { TimesheetDayEntry } from '../../models'
|
|
3
|
+
import { SF_API_VERSION } from '../apiClient'
|
|
4
|
+
|
|
5
|
+
export class SFTimesheetClient {
|
|
6
|
+
private axiosInstance: AxiosInstance
|
|
7
|
+
|
|
8
|
+
constructor(axiosInstance: AxiosInstance) {
|
|
9
|
+
this.axiosInstance = axiosInstance
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {
|
|
13
|
+
try {
|
|
14
|
+
const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`
|
|
15
|
+
const response = await this.axiosInstance.patch(url, {
|
|
16
|
+
Date__c: timesheet.date,
|
|
17
|
+
Callback__c: timesheet.callbackHours,
|
|
18
|
+
HoursEBAdjusted__c: timesheet.regularHours,
|
|
19
|
+
Misc__c: timesheet.miscHours,
|
|
20
|
+
OT1__c: timesheet.overtime1Hours,
|
|
21
|
+
OT2__c: timesheet.overtime2Hours,
|
|
22
|
+
OnCall__c: timesheet.onCallHours,
|
|
23
|
+
Misc1__c: timesheet.misc1HoursA,
|
|
24
|
+
Misc_1_Hours__c: timesheet.misc1HoursB,
|
|
25
|
+
Misc_2_Hours__c: timesheet.misc2Hours,
|
|
26
|
+
Misc_3_Hours__c: timesheet.misc3Hours,
|
|
27
|
+
Misc_4_Hours__c: timesheet.misc4Hours,
|
|
28
|
+
Stat1__c: timesheet.stat1Hours,
|
|
29
|
+
Stat2__c: timesheet.stat2Hours,
|
|
30
|
+
In_Charge__c: timesheet.inChargeHours,
|
|
31
|
+
Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
if (![200, 204, 304].includes(response.status))
|
|
35
|
+
throw new Error(`got error status code ${response.status}`)
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error('Error Updating Timesheet Hour: ', error.message)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async getTimesheetId(workorderId: string): Promise<string> {
|
|
42
|
+
// First we find the correct timesheet id
|
|
43
|
+
const url = `/services/data/${SF_API_VERSION}/query`
|
|
44
|
+
const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`
|
|
45
|
+
const {
|
|
46
|
+
data: { records }
|
|
47
|
+
} = await this.axiosInstance.get(url, {
|
|
48
|
+
params: { q: query }
|
|
49
|
+
})
|
|
50
|
+
return records[0].Id
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async getTimesheetHoursIds(workorderId: string): Promise<string[]> {
|
|
54
|
+
const timesheetId = await this.getTimesheetId(workorderId)
|
|
55
|
+
// First we find the correct timesheet hours id
|
|
56
|
+
const url = `/services/data/${SF_API_VERSION}/query`
|
|
57
|
+
const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`
|
|
58
|
+
const {
|
|
59
|
+
data: { records }
|
|
60
|
+
} = await this.axiosInstance.get(url, {
|
|
61
|
+
params: { q: query }
|
|
62
|
+
})
|
|
63
|
+
return records.map(({ Id }) => Id)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {
|
|
67
|
+
const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)
|
|
68
|
+
return Promise.all(
|
|
69
|
+
timesheetHourIds.map(async id =>
|
|
70
|
+
this.axiosInstance
|
|
71
|
+
.get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)
|
|
72
|
+
.then(res => res.data)
|
|
73
|
+
.then(toTimesheetDayEntry)
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function toTimesheetDayEntry(raw: any): TimesheetDayEntry {
|
|
80
|
+
return {
|
|
81
|
+
date: raw.Date__c,
|
|
82
|
+
callbackHours: raw.Callback__c,
|
|
83
|
+
regularHours: raw.HoursEBAdjusted__c,
|
|
84
|
+
miscHours: raw.Misc__c,
|
|
85
|
+
overtime1Hours: raw.OT1__c,
|
|
86
|
+
overtime2Hours: raw.OT2__c,
|
|
87
|
+
onCallHours: raw.OnCall__c,
|
|
88
|
+
misc1HoursA: raw.Misc1__c,
|
|
89
|
+
misc1HoursB: raw.Misc_1_Hours__c,
|
|
90
|
+
misc2Hours: raw.Misc_2_Hours__c,
|
|
91
|
+
misc3Hours: raw.Misc_3_Hours__c,
|
|
92
|
+
misc4Hours: raw.Misc_4_Hours__c,
|
|
93
|
+
stat1Hours: raw.Stat1__c,
|
|
94
|
+
stat2Hours: raw.Stat2__c,
|
|
95
|
+
inChargeHours: raw.In_Charge__c,
|
|
96
|
+
shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c
|
|
97
|
+
}
|
|
98
|
+
}
|
package/src/models/index.ts
CHANGED
package/src/models/timesheet.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
export interface TimesheetDayEntry {
|
|
2
|
-
date?: Date
|
|
3
|
-
callbackHours?: number
|
|
4
|
-
regularHours?: number
|
|
5
|
-
miscHours?: number
|
|
6
|
-
overtime1Hours?: number
|
|
7
|
-
overtime2Hours?: number
|
|
8
|
-
onCallHours?: number
|
|
9
|
-
misc1HoursA?: number
|
|
10
|
-
misc1HoursB?: number
|
|
11
|
-
misc2Hours?: number
|
|
12
|
-
misc3Hours?: number
|
|
13
|
-
misc4Hours?: number
|
|
14
|
-
stat1Hours?: number
|
|
15
|
-
stat2Hours?: number
|
|
16
|
-
// "EmployeeTimeCardEntry__c": null, // unknown entry in salesforce
|
|
17
|
-
inChargeHours?: number
|
|
18
|
-
// "Shift_Differential__c": number, // unknown entry in salesforce
|
|
19
|
-
shiftTravelPerDiemHours?: number
|
|
20
|
-
// "Weekend_Differential__c": number // unknown entry in salesforce
|
|
21
|
-
}
|
|
1
|
+
export interface TimesheetDayEntry {
|
|
2
|
+
date?: Date
|
|
3
|
+
callbackHours?: number
|
|
4
|
+
regularHours?: number
|
|
5
|
+
miscHours?: number
|
|
6
|
+
overtime1Hours?: number
|
|
7
|
+
overtime2Hours?: number
|
|
8
|
+
onCallHours?: number
|
|
9
|
+
misc1HoursA?: number
|
|
10
|
+
misc1HoursB?: number
|
|
11
|
+
misc2Hours?: number
|
|
12
|
+
misc3Hours?: number
|
|
13
|
+
misc4Hours?: number
|
|
14
|
+
stat1Hours?: number
|
|
15
|
+
stat2Hours?: number
|
|
16
|
+
// "EmployeeTimeCardEntry__c": null, // unknown entry in salesforce
|
|
17
|
+
inChargeHours?: number
|
|
18
|
+
// "Shift_Differential__c": number, // unknown entry in salesforce
|
|
19
|
+
shiftTravelPerDiemHours?: number
|
|
20
|
+
// "Weekend_Differential__c": number // unknown entry in salesforce
|
|
21
|
+
}
|