pha-hermes 1.8.0 → 1.10.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.
@@ -7,6 +7,7 @@ export declare class SFTimesheetClient {
7
7
  getTimesheetId(workorderId: string): Promise<string>;
8
8
  getTimesheetsForPractitioner(personnelID: string): Promise<any[]>;
9
9
  getTimesheetHoursIds(workorderId: string): Promise<string[]>;
10
+ getTimesheetHoursId(workorderId: string, timesheetDate: Date): Promise<string[]>;
10
11
  getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]>;
11
12
  getPayPeriods(): Promise<any>;
12
13
  }
@@ -581,9 +581,9 @@ var SFTimesheetClient = /*#__PURE__*/function () {
581
581
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
582
582
  while (1) switch (_context2.prev = _context2.next) {
583
583
  case 0:
584
- // First we find the correct timesheet id
584
+ // Find all timesheet Ids that belong to this WO
585
585
  url = "/services/data/" + SF_API_VERSION + "/query";
586
- query = "SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '" + workorderId + "'\n LIMIT 1";
586
+ query = "SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '" + workorderId + "'\n ";
587
587
  _context2.next = 4;
588
588
  return this.axiosInstance.get(url, {
589
589
  params: {
@@ -593,7 +593,9 @@ var SFTimesheetClient = /*#__PURE__*/function () {
593
593
  case 4:
594
594
  _yield$this$axiosInst = _context2.sent;
595
595
  records = _yield$this$axiosInst.data.records;
596
- return _context2.abrupt("return", records[0].Id);
596
+ return _context2.abrupt("return", records.map(function (record) {
597
+ return record.Id;
598
+ }));
597
599
  case 7:
598
600
  case "end":
599
601
  return _context2.stop();
@@ -644,31 +646,31 @@ var SFTimesheetClient = /*#__PURE__*/function () {
644
646
  }();
645
647
  _proto.getTimesheetHoursIds = /*#__PURE__*/function () {
646
648
  var _getTimesheetHoursIds = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workorderId) {
647
- var timesheetId, url, query, _yield$this$axiosInst2, records;
649
+ var timesheetIds, timesheetId, url, query, _yield$this$axiosInst2, records;
648
650
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
649
651
  while (1) switch (_context4.prev = _context4.next) {
650
652
  case 0:
651
653
  _context4.next = 2;
652
654
  return this.getTimesheetId(workorderId);
653
655
  case 2:
654
- timesheetId = _context4.sent;
655
- // First we find the correct timesheet hours id
656
+ timesheetIds = _context4.sent;
657
+ timesheetId = timesheetIds[0]; // First we find the correct timesheet hours id
656
658
  url = "/services/data/" + SF_API_VERSION + "/query";
657
659
  query = "SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'";
658
- _context4.next = 7;
660
+ _context4.next = 8;
659
661
  return this.axiosInstance.get(url, {
660
662
  params: {
661
663
  q: query
662
664
  }
663
665
  });
664
- case 7:
666
+ case 8:
665
667
  _yield$this$axiosInst2 = _context4.sent;
666
668
  records = _yield$this$axiosInst2.data.records;
667
669
  return _context4.abrupt("return", records.map(function (_ref) {
668
670
  var Id = _ref.Id;
669
671
  return Id;
670
672
  }));
671
- case 10:
673
+ case 11:
672
674
  case "end":
673
675
  return _context4.stop();
674
676
  }
@@ -679,77 +681,135 @@ var SFTimesheetClient = /*#__PURE__*/function () {
679
681
  }
680
682
  return getTimesheetHoursIds;
681
683
  }();
684
+ _proto.getTimesheetHoursId = /*#__PURE__*/function () {
685
+ var _getTimesheetHoursId = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(workorderId, timesheetDate) {
686
+ var timesheetIds, formattedDate, allHourIds, url, _iterator2, _step2, timesheetId, query, _yield$this$axiosInst3, records, ids;
687
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
688
+ while (1) switch (_context5.prev = _context5.next) {
689
+ case 0:
690
+ _context5.next = 2;
691
+ return this.getTimesheetId(workorderId);
692
+ case 2:
693
+ timesheetIds = _context5.sent;
694
+ formattedDate = timesheetDate.toISOString().split('T')[0];
695
+ allHourIds = [];
696
+ url = "/services/data/" + SF_API_VERSION + "/query";
697
+ _iterator2 = _createForOfIteratorHelperLoose(timesheetIds);
698
+ case 7:
699
+ if ((_step2 = _iterator2()).done) {
700
+ _context5.next = 25;
701
+ break;
702
+ }
703
+ timesheetId = _step2.value;
704
+ query = "\n SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'\n AND Date__c = " + formattedDate + "\n ";
705
+ _context5.prev = 10;
706
+ _context5.next = 13;
707
+ return this.axiosInstance.get(url, {
708
+ params: {
709
+ q: query
710
+ }
711
+ });
712
+ case 13:
713
+ _yield$this$axiosInst3 = _context5.sent;
714
+ records = _yield$this$axiosInst3.data.records;
715
+ ids = records.map(function (record) {
716
+ return record.Id;
717
+ });
718
+ allHourIds.push.apply(allHourIds, ids);
719
+ _context5.next = 23;
720
+ break;
721
+ case 19:
722
+ _context5.prev = 19;
723
+ _context5.t0 = _context5["catch"](10);
724
+ console.error("Failed to fetch", _context5.t0);
725
+ return _context5.abrupt("return", []);
726
+ case 23:
727
+ _context5.next = 7;
728
+ break;
729
+ case 25:
730
+ return _context5.abrupt("return", allHourIds);
731
+ case 26:
732
+ case "end":
733
+ return _context5.stop();
734
+ }
735
+ }, _callee5, this, [[10, 19]]);
736
+ }));
737
+ function getTimesheetHoursId(_x6, _x7) {
738
+ return _getTimesheetHoursId.apply(this, arguments);
739
+ }
740
+ return getTimesheetHoursId;
741
+ }();
682
742
  _proto.getTimesheetHours = /*#__PURE__*/function () {
683
- var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(workorderId) {
743
+ var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(workorderId) {
684
744
  var _this = this;
685
745
  var timesheetHourIds;
686
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
687
- while (1) switch (_context6.prev = _context6.next) {
746
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
747
+ while (1) switch (_context7.prev = _context7.next) {
688
748
  case 0:
689
- _context6.next = 2;
749
+ _context7.next = 2;
690
750
  return this.getTimesheetHoursIds(workorderId);
691
751
  case 2:
692
- timesheetHourIds = _context6.sent;
693
- return _context6.abrupt("return", Promise.all(timesheetHourIds.map(/*#__PURE__*/function () {
694
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(id) {
695
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
696
- while (1) switch (_context5.prev = _context5.next) {
752
+ timesheetHourIds = _context7.sent;
753
+ return _context7.abrupt("return", Promise.all(timesheetHourIds.map(/*#__PURE__*/function () {
754
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(id) {
755
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
756
+ while (1) switch (_context6.prev = _context6.next) {
697
757
  case 0:
698
- return _context5.abrupt("return", _this.axiosInstance.get("/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + id).then(function (res) {
758
+ return _context6.abrupt("return", _this.axiosInstance.get("/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + id).then(function (res) {
699
759
  return res.data;
700
760
  }).then(toTimesheetDayEntry));
701
761
  case 1:
702
762
  case "end":
703
- return _context5.stop();
763
+ return _context6.stop();
704
764
  }
705
- }, _callee5);
765
+ }, _callee6);
706
766
  }));
707
- return function (_x7) {
767
+ return function (_x9) {
708
768
  return _ref2.apply(this, arguments);
709
769
  };
710
770
  }())));
711
771
  case 4:
712
772
  case "end":
713
- return _context6.stop();
773
+ return _context7.stop();
714
774
  }
715
- }, _callee6, this);
775
+ }, _callee7, this);
716
776
  }));
717
- function getTimesheetHours(_x6) {
777
+ function getTimesheetHours(_x8) {
718
778
  return _getTimesheetHours.apply(this, arguments);
719
779
  }
720
780
  return getTimesheetHours;
721
781
  }();
722
782
  _proto.getPayPeriods = /*#__PURE__*/function () {
723
- var _getPayPeriods = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
724
- var url, query, data, payPeriods, _iterator2, _step2, payPeriod;
725
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
726
- while (1) switch (_context7.prev = _context7.next) {
783
+ var _getPayPeriods = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
784
+ var url, query, data, payPeriods, _iterator3, _step3, payPeriod;
785
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
786
+ while (1) switch (_context8.prev = _context8.next) {
727
787
  case 0:
728
788
  url = "/services/data/" + SF_API_VERSION + "/query";
729
789
  query = "SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c";
730
- _context7.next = 4;
790
+ _context8.next = 4;
731
791
  return this.axiosInstance.get(url, {
732
792
  params: {
733
793
  q: query
734
794
  }
735
795
  });
736
796
  case 4:
737
- data = _context7.sent;
797
+ data = _context8.sent;
738
798
  payPeriods = [];
739
- for (_iterator2 = _createForOfIteratorHelperLoose(data.data.records); !(_step2 = _iterator2()).done;) {
740
- payPeriod = _step2.value;
799
+ for (_iterator3 = _createForOfIteratorHelperLoose(data.data.records); !(_step3 = _iterator3()).done;) {
800
+ payPeriod = _step3.value;
741
801
  payPeriods.push({
742
802
  name: payPeriod.Name,
743
803
  startDate: payPeriod.StartDate__c,
744
804
  endDate: payPeriod.EndDate__c
745
805
  });
746
806
  }
747
- return _context7.abrupt("return", payPeriods);
807
+ return _context8.abrupt("return", payPeriods);
748
808
  case 8:
749
809
  case "end":
750
- return _context7.stop();
810
+ return _context8.stop();
751
811
  }
752
- }, _callee7, this);
812
+ }, _callee8, this);
753
813
  }));
754
814
  function getPayPeriods() {
755
815
  return _getPayPeriods.apply(this, arguments);
@@ -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/workorder/workorderClient.ts","../src/api/payperiod/payperiodClient.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 private tokenRefreshPromise: Promise<string> | null = null\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(\n clientId: string,\n clientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n // If the error is 401 and we haven't exceeded max retries\n if (error.response?.status === 401 && originalRequest._retryCount < 3) {\n originalRequest._retryCount++\n\n try {\n // Use existing token refresh if one is in progress\n if (!this.tokenRefreshPromise) {\n const newClientCredentials = await onTokenRefresh?.()\n const newClientId = newClientCredentials?.clientId || clientId\n const newClientSecret =\n newClientCredentials?.clientSecret || clientSecret\n this.tokenRefreshPromise = this.postToken(newClientId, newClientSecret)\n }\n\n const newToken = await this.tokenRefreshPromise\n // Clear the refresh promise after it completes\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${newToken}`\n originalRequest.headers['Authorization'] = `Bearer ${newToken}`\n\n originalRequest.timeout = 5000\n\n return await Promise.race([\n this.authenticatedAxiosInstance(originalRequest),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error('Retry request timeout')),\n originalRequest.timeout\n )\n )\n ])\n } catch (refreshError) {\n // Clear the refresh promise if it fails\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n\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\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'\n 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 getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async 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\n FROM TimesheetHour__c\n 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 async getPayPeriods(): Promise<any> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriods = []\n\n for (const payPeriod of data.data.records) {\n payPeriods.push({\n name: payPeriod.Name,\n startDate: payPeriod.StartDate__c,\n endDate: payPeriod.EndDate__c\n })\n }\n\n return payPeriods\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models'\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 async fetchPractitionerByEmail(email: string): Promise<Practitioner | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '${email}'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n if (records.length === 0) {\n return null\n }\n return toPractitioner(records[0])\n } catch (error) {\n console.error('Error fetching practitioner by email:', error)\n throw error\n }\n }\n}\n\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 { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\nimport { Workorder } from '../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n\n async getWorkordersForPractitioner(practitionerId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = practitionerId\n ? `SELECT Id, Region__c, Name, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${practitionerId}'`\n : `SELECT Id, Region__c, Name, 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 name: record.Name,\n establishmentId: record.HospitalID__c,\n region: record.Region__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate)\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport interface Period {\n payPeriodId: string\n startDate: Date\n endDate: Date\n timesheetId?: string\n workorderId?: string\n}\n\nexport class SFPayPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPayPeriodAndTimesheetIdsForWorkorder(workorderID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderID}'`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodIds = []\n\n for (const payPeriods of data.data.records) {\n payPeriodIds.push({\n timesheetId: payPeriods.Id,\n payPeriodId: payPeriods.PayPeriod__c\n })\n }\n\n return payPeriodIds\n }\n\n async getPayPeriodDatesForPayPeriodIds(payPeriodIDs: string[]): Promise<Period[]> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN ${listOfIdsForQuery(payPeriodIDs)}`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodDates = []\n\n for (const payPeriod of data.data.records) {\n payPeriodDates.push({\n payPeriodId: payPeriod.Id,\n startDate: new Date(payPeriod.StartDate__c),\n endDate: new Date(payPeriod.EndDate__c)\n })\n }\n\n return payPeriodDates\n }\n}\n\nconst listOfIdsForQuery = (payPeriodIDs: string[]) => `('${payPeriodIDs.join('\\', \\'')}')`\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\nimport { SFPayPeriodClient } from './payperiod/payperiodClient'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n payPeriodClient: SFPayPeriodClient\n\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.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n this.payPeriodClient = new SFPayPeriodClient(this.axiosInstance)\n }\n\n async init(\n sfClientId: string,\n sfClientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret, onTokenRefresh)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","clientId","clientSecret","onTokenRefresh","_this","token","wrap","_callee2$","_context2","prev","next","postToken","sent","headers","common","interceptors","response","use","_ref","_callee","error","_error$response","originalRequest","newClientCredentials","newClientId","newClientSecret","newToken","_callee$","_context","config","_retryCount","status","tokenRefreshPromise","timeout","Promise","race","_","reject","setTimeout","Error","abrupt","t0","stop","_x4","apply","arguments","_x","_x2","_x3","_postToken","_callee3","_response$data","tokenFormRequestBody","_callee3$","_context3","FormData","refreshToken","append","post","getHeaders","data","_x5","_x6","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","console","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","value","push","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHoursIds","_getTimesheetHoursIds","_callee4","timesheetId","_yield$this$axiosInst2","_callee4$","_context4","map","getTimesheetHours","_getTimesheetHours","_callee6","timesheetHourIds","_callee6$","_context6","all","_ref2","_callee5","_callee5$","_context5","then","res","toTimesheetDayEntry","_x7","getPayPeriods","_getPayPeriods","_callee7","payPeriods","_iterator2","_step2","payPeriod","_callee7$","_context7","name","Name","startDate","StartDate__c","endDate","EndDate__c","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","fetchPractitionerByEmail","_fetchPractitionerByEmail","email","length","firstName","FirstName__c","lastName","LastName__c","Email__c","staffId","StaffID__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","record","establishmentId","HospitalID__c","region","Region__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","Date","startdate__c","createdAt","CreatedDate","SFPayPeriodClient","getPayPeriodAndTimesheetIdsForWorkorder","_getPayPeriodAndTimesheetIdsForWorkorder","workorderID","payPeriodIds","payPeriodId","PayPeriod__c","getPayPeriodDatesForPayPeriodIds","_getPayPeriodDatesForPayPeriodIds","payPeriodIDs","payPeriodDates","listOfIdsForQuery","join","SFApiClient","authenticator","timesheetClient","workorderClient","practitionerClient","payPeriodClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchRoles","_fetchRoles","label","Label","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/workorder/workorderClient.ts","../src/api/payperiod/payperiodClient.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 private tokenRefreshPromise: Promise<string> | null = null\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(\n clientId: string,\n clientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n // If the error is 401 and we haven't exceeded max retries\n if (error.response?.status === 401 && originalRequest._retryCount < 3) {\n originalRequest._retryCount++\n\n try {\n // Use existing token refresh if one is in progress\n if (!this.tokenRefreshPromise) {\n const newClientCredentials = await onTokenRefresh?.()\n const newClientId = newClientCredentials?.clientId || clientId\n const newClientSecret =\n newClientCredentials?.clientSecret || clientSecret\n this.tokenRefreshPromise = this.postToken(newClientId, newClientSecret)\n }\n\n const newToken = await this.tokenRefreshPromise\n // Clear the refresh promise after it completes\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${newToken}`\n originalRequest.headers['Authorization'] = `Bearer ${newToken}`\n\n originalRequest.timeout = 5000\n\n return await Promise.race([\n this.authenticatedAxiosInstance(originalRequest),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error('Retry request timeout')),\n originalRequest.timeout\n )\n )\n ])\n } catch (refreshError) {\n // Clear the refresh promise if it fails\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n\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 // Find all timesheet Ids that belong to this WO\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(record => record.Id)\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetIds = await this.getTimesheetId(workorderId)\n const timesheetId = timesheetIds[0]\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM TimesheetHour__c\n 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 getTimesheetHoursId(workorderId: string, timesheetDate: Date): Promise<string[]> {\n const timesheetIds = await this.getTimesheetId(workorderId)\n const formattedDate = timesheetDate.toISOString().split('T')[0]\n const allHourIds: string[] = []\n const url = `/services/data/${SF_API_VERSION}/query`\n\n for (const timesheetId of timesheetIds) {\n const query = `\n SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'\n AND Date__c = ${formattedDate}\n `\n try {\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n const ids = records.map(record => record.Id)\n allHourIds.push(...ids)\n } catch (err) {\n console.error(`Failed to fetch`, err)\n return []\n }\n }\n\n return allHourIds\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 async getPayPeriods(): Promise<any> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriods = []\n\n for (const payPeriod of data.data.records) {\n payPeriods.push({\n name: payPeriod.Name,\n startDate: payPeriod.StartDate__c,\n endDate: payPeriod.EndDate__c\n })\n }\n\n return payPeriods\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models'\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 async fetchPractitionerByEmail(email: string): Promise<Practitioner | null> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '${email}'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n if (records.length === 0) {\n return null\n }\n return toPractitioner(records[0])\n } catch (error) {\n console.error('Error fetching practitioner by email:', error)\n throw error\n }\n }\n}\n\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 { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\nimport { Workorder } from '../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n\n async getWorkordersForPractitioner(practitionerId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = practitionerId\n ? `SELECT Id, Region__c, Name, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${practitionerId}'`\n : `SELECT Id, Region__c, Name, 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 name: record.Name,\n establishmentId: record.HospitalID__c,\n region: record.Region__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate)\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport interface Period {\n payPeriodId: string\n startDate: Date\n endDate: Date\n timesheetId?: string\n workorderId?: string\n}\n\nexport class SFPayPeriodClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async getPayPeriodAndTimesheetIdsForWorkorder(workorderID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderID}'`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodIds = []\n\n for (const payPeriods of data.data.records) {\n payPeriodIds.push({\n timesheetId: payPeriods.Id,\n payPeriodId: payPeriods.PayPeriod__c\n })\n }\n\n return payPeriodIds\n }\n\n async getPayPeriodDatesForPayPeriodIds(payPeriodIDs: string[]): Promise<Period[]> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN ${listOfIdsForQuery(payPeriodIDs)}`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriodDates = []\n\n for (const payPeriod of data.data.records) {\n payPeriodDates.push({\n payPeriodId: payPeriod.Id,\n startDate: new Date(payPeriod.StartDate__c),\n endDate: new Date(payPeriod.EndDate__c)\n })\n }\n\n return payPeriodDates\n }\n}\n\nconst listOfIdsForQuery = (payPeriodIDs: string[]) => `('${payPeriodIDs.join('\\', \\'')}')`\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\nimport { SFPayPeriodClient } from './payperiod/payperiodClient'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n payPeriodClient: SFPayPeriodClient\n\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.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n this.payPeriodClient = new SFPayPeriodClient(this.axiosInstance)\n }\n\n async init(\n sfClientId: string,\n sfClientSecret: string,\n onTokenRefresh?: () => Promise<{ clientId: string; clientSecret: string }>\n ) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret, onTokenRefresh)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","clientId","clientSecret","onTokenRefresh","_this","token","wrap","_callee2$","_context2","prev","next","postToken","sent","headers","common","interceptors","response","use","_ref","_callee","error","_error$response","originalRequest","newClientCredentials","newClientId","newClientSecret","newToken","_callee$","_context","config","_retryCount","status","tokenRefreshPromise","timeout","Promise","race","_","reject","setTimeout","Error","abrupt","t0","stop","_x4","apply","arguments","_x","_x2","_x3","_postToken","_callee3","_response$data","tokenFormRequestBody","_callee3$","_context3","FormData","refreshToken","append","post","getHeaders","data","_x5","_x6","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","console","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","map","record","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","value","push","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHoursIds","_getTimesheetHoursIds","_callee4","timesheetIds","timesheetId","_yield$this$axiosInst2","_callee4$","_context4","getTimesheetHoursId","_getTimesheetHoursId","_callee5","timesheetDate","formattedDate","allHourIds","_iterator2","_step2","_yield$this$axiosInst3","ids","_callee5$","_context5","toISOString","split","_x7","getTimesheetHours","_getTimesheetHours","_callee7","timesheetHourIds","_callee7$","_context7","all","_ref2","_callee6","_callee6$","_context6","then","res","toTimesheetDayEntry","_x9","_x8","getPayPeriods","_getPayPeriods","_callee8","payPeriods","_iterator3","_step3","payPeriod","_callee8$","_context8","name","Name","startDate","StartDate__c","endDate","EndDate__c","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","fetchPractitionerByEmail","_fetchPractitionerByEmail","email","length","firstName","FirstName__c","lastName","LastName__c","Email__c","staffId","StaffID__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","establishmentId","HospitalID__c","region","Region__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","Date","startdate__c","createdAt","CreatedDate","SFPayPeriodClient","getPayPeriodAndTimesheetIdsForWorkorder","_getPayPeriodAndTimesheetIdsForWorkorder","workorderID","payPeriodIds","payPeriodId","PayPeriod__c","getPayPeriodDatesForPayPeriodIds","_getPayPeriodDatesForPayPeriodIds","payPeriodIDs","payPeriodDates","listOfIdsForQuery","join","SFApiClient","authenticator","timesheetClient","workorderClient","practitionerClient","payPeriodClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchRoles","_fetchRoles","label","Label","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){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(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 o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function s(t){a(i,n,o,s,c,"next",t)}function c(t){a(i,n,o,s,c,"throw",t)}s(void 0)}))}}function i(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var a=0;return function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(){s=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",u=o.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 L(n||[]);return a(o,"_invoke",{value:H(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 x={};h(x,i,(function(){return this}));var w=Object.getPrototypeOf,E=w&&w(w(S([])));E&&E!==r&&n.call(E,i)&&(x=E);var I=g.prototype=m.prototype=Object.create(x);function b(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 H(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=P(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 P(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,P(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 D(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function S(e){if(e||""===e){var r=e[i];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(I,"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(I),t},e.awrap=function(t){return{__await:t}},b(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()}))},b(I),h(I,u,"Generator"),h(I,i,(function(){return this})),h(I,"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,L.prototype={constructor:L,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(D),!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),D(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;D(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 c=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.tokenRefreshPromise=null,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(s().mark((function t(e,r,n){var a=this;return s().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,this.authenticatedAxiosInstance.interceptors.response.use((function(t){return t}),function(){var t=o(s().mark((function t(o){var i,c,u,h;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((c=o.config)._retryCount=c._retryCount||0,!(401===(null==(i=o.response)?void 0:i.status)&&c._retryCount<3)){t.next=28;break}if(c._retryCount++,t.prev=4,a.tokenRefreshPromise){t.next=12;break}return t.next=8,null==n?void 0:n();case 8:a.tokenRefreshPromise=a.postToken((null==(u=t.sent)?void 0:u.clientId)||e,(null==u?void 0:u.clientSecret)||r);case 12:return t.next=14,a.tokenRefreshPromise;case 14:return h=t.sent,a.tokenRefreshPromise=null,a.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+h,c.headers.Authorization="Bearer "+h,c.timeout=5e3,t.next=21,Promise.race([a.authenticatedAxiosInstance(c),new Promise((function(t,e){return setTimeout((function(){return e(new Error("Retry request timeout"))}),c.timeout)}))]);case 21:return t.abrupt("return",t.sent);case 24:return t.prev=24,t.t0=t.catch(4),a.tokenRefreshPromise=null,t.abrupt("return",Promise.reject(t.t0));case 28:return t.abrupt("return",Promise.reject(o));case 29:case"end":return t.stop()}}),t,null,[[4,24]])})));return function(e){return t.apply(this,arguments)}}());case 5:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),n.postToken=function(){var t=o(s().mark((function t(e,n){var a,o,i;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=new r,!this.refreshToken){t.next=6;break}o.append("refresh_token",this.refreshToken),o.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}o.append("client_id",e),o.append("client_secret",n),o.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",o,{headers:o.getHeaders()});case 15:if(this.token=null==(i=t.sent)||null==(a=i.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}(),u=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=o(s().mark((function t(e,r){var n,a;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+v+"/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=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'\n 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.getTimesheetsForPractitioner=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '"+e+"')",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({workorderId:(u=c.value).WorkOrder__c,id:u.Id,updatedAt:u.LastModifiedDate});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+v+"/query",n="SELECT Id\n FROM TimesheetHour__c\n 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(s().mark((function t(e){var r=this;return s().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(s().mark((function t(e){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+v+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(h));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)}}(),e.getPayPeriods=function(){var t=o(s().mark((function t(){var e,r,n,a,o;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e="/services/data/"+v+"/query",t.next=4,this.axiosInstance.get(e,{params:{q:"SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c"}});case 4:for(r=[],n=i(t.sent.data.records);!(a=n()).done;)r.push({name:(o=a.value).Name,startDate:o.StartDate__c,endDate:o.EndDate__c});return t.abrupt("return",r);case 8:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,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,lastModified:t.LastModifiedDate}}var f=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.fetchPractitioners=function(){var t=o(s().mark((function t(){var e;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+v+"/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(l));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)}}(),e.fetchPractitionerByEmail=function(){var t=o(s().mark((function t(e){var r,n,a;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+v+"/query",n="\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '"+e+"'\n ",t.next=5,this.axiosInstance.get(r,{params:{q:n}});case 5:if(0!==(a=t.sent.data.records).length){t.next=9;break}return t.abrupt("return",null);case 9:return t.abrupt("return",l(a[0]));case 12:throw t.prev=12,t.t0=t.catch(0),console.error("Error fetching practitioner by email:",t.t0),t.t0;case 16:case"end":return t.stop()}}),t,this,[[0,12]])})));return function(e){return t.apply(this,arguments)}}(),t}();function l(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var p=function(){function t(t){this.axiosInstance=t}return t.prototype.getWorkordersForPractitioner=function(){var t=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+v+"/query",n=e?"SELECT Id, Region__c, Name, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, Region__c, Name, 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,name:t.Name,establishmentId:t.HospitalID__c,region:t.Region__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c,practitionerId: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)}}(),t}(),d=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.getPayPeriodAndTimesheetIdsForWorkorder=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({timesheetId:(u=c.value).Id,payPeriodId:u.PayPeriod__c});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getPayPeriodDatesForPayPeriodIds=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN "+_(e),t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({payPeriodId:(u=c.value).Id,startDate:new Date(u.StartDate__c),endDate:new Date(u.EndDate__c)});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}(),_=function(t){return"('"+t.join("', '")+"')"},v="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 c(this.axiosInstance,this.baseUrl),this.timesheetClient=new u(this.axiosInstance),this.workorderClient=new p(this.axiosInstance),this.practitionerClient=new f(this.axiosInstance),this.payPeriodClient=new d(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=o(s().mark((function t(e,r,n){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r,n);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchRoles=function(){var t=o(s().mark((function t(){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+v+"/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=c,exports.SFPractitionerClient=f,exports.SFTimesheetClient=u;
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){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(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 o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function s(t){a(i,n,o,s,c,"next",t)}function c(t){a(i,n,o,s,c,"throw",t)}s(void 0)}))}}function i(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var a=0;return function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(){s=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",u=o.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 L(n||[]);return a(o,"_invoke",{value:H(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 x={};h(x,i,(function(){return this}));var w=Object.getPrototypeOf,E=w&&w(w(S([])));E&&E!==r&&n.call(E,i)&&(x=E);var b=g.prototype=m.prototype=Object.create(x);function I(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 H(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=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(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 T(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,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 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 P(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 D(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function S(e){if(e||""===e){var r=e[i];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}},I(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()}))},I(b),h(b,u,"Generator"),h(b,i,(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,L.prototype={constructor:L,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(D),!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),D(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;D(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 c=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.tokenRefreshPromise=null,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(s().mark((function t(e,r,n){var a=this;return s().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,this.authenticatedAxiosInstance.interceptors.response.use((function(t){return t}),function(){var t=o(s().mark((function t(o){var i,c,u,h;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((c=o.config)._retryCount=c._retryCount||0,!(401===(null==(i=o.response)?void 0:i.status)&&c._retryCount<3)){t.next=28;break}if(c._retryCount++,t.prev=4,a.tokenRefreshPromise){t.next=12;break}return t.next=8,null==n?void 0:n();case 8:a.tokenRefreshPromise=a.postToken((null==(u=t.sent)?void 0:u.clientId)||e,(null==u?void 0:u.clientSecret)||r);case 12:return t.next=14,a.tokenRefreshPromise;case 14:return h=t.sent,a.tokenRefreshPromise=null,a.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+h,c.headers.Authorization="Bearer "+h,c.timeout=5e3,t.next=21,Promise.race([a.authenticatedAxiosInstance(c),new Promise((function(t,e){return setTimeout((function(){return e(new Error("Retry request timeout"))}),c.timeout)}))]);case 21:return t.abrupt("return",t.sent);case 24:return t.prev=24,t.t0=t.catch(4),a.tokenRefreshPromise=null,t.abrupt("return",Promise.reject(t.t0));case 28:return t.abrupt("return",Promise.reject(o));case 29:case"end":return t.stop()}}),t,null,[[4,24]])})));return function(e){return t.apply(this,arguments)}}());case 5:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),n.postToken=function(){var t=o(s().mark((function t(e,n){var a,o,i;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=new r,!this.refreshToken){t.next=6;break}o.append("refresh_token",this.refreshToken),o.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}o.append("client_id",e),o.append("client_secret",n),o.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",o,{headers:o.getHeaders()});case 15:if(this.token=null==(i=t.sent)||null==(a=i.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}(),u=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=o(s().mark((function t(e,r){var n,a;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+v+"/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=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'\n ",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetsForPractitioner=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '"+e+"')",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({workorderId:(u=c.value).WorkOrder__c,id:u.Id,updatedAt:u.LastModifiedDate});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+v+"/query",n="SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '"+t.sent[0]+"'",t.next=8,this.axiosInstance.get(r,{params:{q:n}});case 8:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursId=function(){var t=o(s().mark((function t(e,r){var n,a,o,c,u,h,f,l;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:n=t.sent,a=r.toISOString().split("T")[0],o=[],c="/services/data/"+v+"/query",u=i(n);case 7:if((h=u()).done){t.next=25;break}return f="\n SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '"+h.value+"'\n AND Date__c = "+a+"\n ",t.prev=10,t.next=13,this.axiosInstance.get(c,{params:{q:f}});case 13:l=t.sent.data.records.map((function(t){return t.Id})),o.push.apply(o,l),t.next=23;break;case 19:return t.prev=19,t.t0=t.catch(10),console.error("Failed to fetch",t.t0),t.abrupt("return",[]);case 23:t.next=7;break;case 25:return t.abrupt("return",o);case 26:case"end":return t.stop()}}),t,this,[[10,19]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=o(s().mark((function t(e){var r=this;return s().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(s().mark((function t(e){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+v+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(h));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)}}(),e.getPayPeriods=function(){var t=o(s().mark((function t(){var e,r,n,a,o;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e="/services/data/"+v+"/query",t.next=4,this.axiosInstance.get(e,{params:{q:"SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c"}});case 4:for(r=[],n=i(t.sent.data.records);!(a=n()).done;)r.push({name:(o=a.value).Name,startDate:o.StartDate__c,endDate:o.EndDate__c});return t.abrupt("return",r);case 8:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,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,lastModified:t.LastModifiedDate}}var f=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.fetchPractitioners=function(){var t=o(s().mark((function t(){var e;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+v+"/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(l));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)}}(),e.fetchPractitionerByEmail=function(){var t=o(s().mark((function t(e){var r,n,a;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+v+"/query",n="\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active' AND Email__c = '"+e+"'\n ",t.next=5,this.axiosInstance.get(r,{params:{q:n}});case 5:if(0!==(a=t.sent.data.records).length){t.next=9;break}return t.abrupt("return",null);case 9:return t.abrupt("return",l(a[0]));case 12:throw t.prev=12,t.t0=t.catch(0),console.error("Error fetching practitioner by email:",t.t0),t.t0;case 16:case"end":return t.stop()}}),t,this,[[0,12]])})));return function(e){return t.apply(this,arguments)}}(),t}();function l(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var p=function(){function t(t){this.axiosInstance=t}return t.prototype.getWorkordersForPractitioner=function(){var t=o(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+v+"/query",n=e?"SELECT Id, Region__c, Name, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, Region__c, Name, 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,name:t.Name,establishmentId:t.HospitalID__c,region:t.Region__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c,practitionerId: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)}}(),t}(),d=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.getPayPeriodAndTimesheetIdsForWorkorder=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT PayPeriod__c, ID\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({timesheetId:(u=c.value).Id,payPeriodId:u.PayPeriod__c});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getPayPeriodDatesForPayPeriodIds=function(){var t=o(s().mark((function t(e){var r,n,a,o,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+v+"/query",n="SELECT ID, StartDate__c, EndDate__c\n FROM PayPeriod__c\n WHERE id IN "+_(e),t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(a=[],o=i(t.sent.data.records);!(c=o()).done;)a.push({payPeriodId:(u=c.value).Id,startDate:new Date(u.StartDate__c),endDate:new Date(u.EndDate__c)});return t.abrupt("return",a);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}(),_=function(t){return"('"+t.join("', '")+"')"},v="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 c(this.axiosInstance,this.baseUrl),this.timesheetClient=new u(this.axiosInstance),this.workorderClient=new p(this.axiosInstance),this.practitionerClient=new f(this.axiosInstance),this.payPeriodClient=new d(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=o(s().mark((function t(e,r,n){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r,n);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchRoles=function(){var t=o(s().mark((function t(){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+v+"/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=c,exports.SFPractitionerClient=f,exports.SFTimesheetClient=u;
2
2
  //# sourceMappingURL=pha-hermes.cjs.production.min.js.map