pha-hermes 1.12.0 → 1.13.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.
@@ -569,44 +569,37 @@ var SFTimesheetClient = /*#__PURE__*/function () {
569
569
  }
570
570
  return updateTimesheetHour;
571
571
  }();
572
- _proto.getTimesheetIds = /*#__PURE__*/function () {
573
- var _getTimesheetIds = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(workorderId, periodStartDate, periodEndDate) {
572
+ _proto.getTimesheetId = /*#__PURE__*/function () {
573
+ var _getTimesheetId = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(workorderId) {
574
574
  var url, query, _yield$this$axiosInst, records;
575
575
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
576
576
  while (1) switch (_context2.prev = _context2.next) {
577
577
  case 0:
578
578
  // Find all timesheet Ids that belong to this WO
579
579
  url = "/services/data/" + SF_API_VERSION + "/query";
580
- query = "SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '" + workorderId + "'";
581
- try {
582
- if (periodStartDate && periodEndDate) {
583
- query += "\n AND PayPeriodStartDate__c <= " + new Date(periodStartDate).toISOString().substring(0, 10) + "\n AND PayPeriodEndDate__c >= " + new Date(periodEndDate).toISOString().substring(0, 10) + "\n ";
584
- }
585
- } catch (error) {
586
- console.error('Invalid period dates', error);
587
- }
588
- _context2.next = 5;
580
+ query = "SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '" + workorderId + "'\n ";
581
+ _context2.next = 4;
589
582
  return this.axiosInstance.get(url, {
590
583
  params: {
591
584
  q: query
592
585
  }
593
586
  });
594
- case 5:
587
+ case 4:
595
588
  _yield$this$axiosInst = _context2.sent;
596
589
  records = _yield$this$axiosInst.data.records;
597
590
  return _context2.abrupt("return", records.map(function (record) {
598
591
  return record.Id;
599
592
  }));
600
- case 8:
593
+ case 7:
601
594
  case "end":
602
595
  return _context2.stop();
603
596
  }
604
597
  }, _callee2, this);
605
598
  }));
606
- function getTimesheetIds(_x3, _x4, _x5) {
607
- return _getTimesheetIds.apply(this, arguments);
599
+ function getTimesheetId(_x3) {
600
+ return _getTimesheetId.apply(this, arguments);
608
601
  }
609
- return getTimesheetIds;
602
+ return getTimesheetId;
610
603
  }();
611
604
  _proto.getTimesheetsForPractitioner = /*#__PURE__*/function () {
612
605
  var _getTimesheetsForPractitioner = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(personnelID) {
@@ -640,83 +633,162 @@ var SFTimesheetClient = /*#__PURE__*/function () {
640
633
  }
641
634
  }, _callee3, this);
642
635
  }));
643
- function getTimesheetsForPractitioner(_x6) {
636
+ function getTimesheetsForPractitioner(_x4) {
644
637
  return _getTimesheetsForPractitioner.apply(this, arguments);
645
638
  }
646
639
  return getTimesheetsForPractitioner;
647
640
  }();
648
- _proto.getTimesheetHours = /*#__PURE__*/function () {
649
- var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workorderId, fields, periodStartDate, periodEndDate) {
650
- var timesheetIds, allHours, url, _iterator2, _step2, timesheetId, query, _yield$this$axiosInst2, records;
641
+ _proto.getTimesheetHoursIds = /*#__PURE__*/function () {
642
+ var _getTimesheetHoursIds = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workorderId) {
643
+ var timesheetIds, timesheetId, url, query, _yield$this$axiosInst2, records;
651
644
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
652
645
  while (1) switch (_context4.prev = _context4.next) {
653
646
  case 0:
654
647
  _context4.next = 2;
655
- return this.getTimesheetIds(workorderId, periodStartDate, periodEndDate);
648
+ return this.getTimesheetId(workorderId);
656
649
  case 2:
657
650
  timesheetIds = _context4.sent;
658
- allHours = [];
651
+ timesheetId = timesheetIds[0]; // First we find the correct timesheet hours id
652
+ url = "/services/data/" + SF_API_VERSION + "/query";
653
+ query = "SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'";
654
+ _context4.next = 8;
655
+ return this.axiosInstance.get(url, {
656
+ params: {
657
+ q: query
658
+ }
659
+ });
660
+ case 8:
661
+ _yield$this$axiosInst2 = _context4.sent;
662
+ records = _yield$this$axiosInst2.data.records;
663
+ return _context4.abrupt("return", records.map(function (_ref) {
664
+ var Id = _ref.Id;
665
+ return Id;
666
+ }));
667
+ case 11:
668
+ case "end":
669
+ return _context4.stop();
670
+ }
671
+ }, _callee4, this);
672
+ }));
673
+ function getTimesheetHoursIds(_x5) {
674
+ return _getTimesheetHoursIds.apply(this, arguments);
675
+ }
676
+ return getTimesheetHoursIds;
677
+ }();
678
+ _proto.getTimesheetHoursId = /*#__PURE__*/function () {
679
+ var _getTimesheetHoursId = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(workorderId, timesheetDate) {
680
+ var timesheetIds, formattedDate, allHourIds, url, _iterator2, _step2, timesheetId, query, _yield$this$axiosInst3, records, ids;
681
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
682
+ while (1) switch (_context5.prev = _context5.next) {
683
+ case 0:
684
+ _context5.next = 2;
685
+ return this.getTimesheetId(workorderId);
686
+ case 2:
687
+ timesheetIds = _context5.sent;
688
+ formattedDate = timesheetDate.toISOString().split('T')[0];
689
+ allHourIds = [];
659
690
  url = "/services/data/" + SF_API_VERSION + "/query";
660
691
  _iterator2 = _createForOfIteratorHelperLoose(timesheetIds);
661
- case 6:
692
+ case 7:
662
693
  if ((_step2 = _iterator2()).done) {
663
- _context4.next = 23;
694
+ _context5.next = 25;
664
695
  break;
665
696
  }
666
697
  timesheetId = _step2.value;
667
- query = "\n SELECT " + ((fields == null ? void 0 : fields.join(',')) || 'FIELDS(STANDARD)') + "\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'";
668
- _context4.prev = 9;
669
- if (fields != null && fields.length) {
670
- query += "\n AND Date__c >= " + new Date(periodStartDate).toISOString().substring(0, 10) + "\n AND Date__c <= " + new Date(periodEndDate).toISOString().substring(0, 10);
671
- }
672
- _context4.next = 13;
698
+ query = "\n SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'\n AND Date__c = " + formattedDate + "\n ";
699
+ _context5.prev = 10;
700
+ _context5.next = 13;
673
701
  return this.axiosInstance.get(url, {
674
702
  params: {
675
703
  q: query
676
704
  }
677
705
  });
678
706
  case 13:
679
- _yield$this$axiosInst2 = _context4.sent;
680
- records = _yield$this$axiosInst2.data.records;
681
- allHours.push.apply(allHours, records);
682
- _context4.next = 21;
683
- break;
684
- case 18:
685
- _context4.prev = 18;
686
- _context4.t0 = _context4["catch"](9);
687
- console.error("Failed to fetch", _context4.t0);
688
- case 21:
689
- _context4.next = 6;
707
+ _yield$this$axiosInst3 = _context5.sent;
708
+ records = _yield$this$axiosInst3.data.records;
709
+ ids = records.map(function (record) {
710
+ return record.Id;
711
+ });
712
+ allHourIds.push.apply(allHourIds, ids);
713
+ _context5.next = 23;
690
714
  break;
715
+ case 19:
716
+ _context5.prev = 19;
717
+ _context5.t0 = _context5["catch"](10);
718
+ console.error("Failed to fetch", _context5.t0);
719
+ return _context5.abrupt("return", []);
691
720
  case 23:
692
- return _context4.abrupt("return", allHours.map(toTimesheetDayEntry));
693
- case 24:
721
+ _context5.next = 7;
722
+ break;
723
+ case 25:
724
+ return _context5.abrupt("return", allHourIds);
725
+ case 26:
694
726
  case "end":
695
- return _context4.stop();
727
+ return _context5.stop();
728
+ }
729
+ }, _callee5, this, [[10, 19]]);
730
+ }));
731
+ function getTimesheetHoursId(_x6, _x7) {
732
+ return _getTimesheetHoursId.apply(this, arguments);
733
+ }
734
+ return getTimesheetHoursId;
735
+ }();
736
+ _proto.getTimesheetHours = /*#__PURE__*/function () {
737
+ var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(workorderId) {
738
+ var _this = this;
739
+ var timesheetHourIds;
740
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
741
+ while (1) switch (_context7.prev = _context7.next) {
742
+ case 0:
743
+ _context7.next = 2;
744
+ return this.getTimesheetHoursIds(workorderId);
745
+ case 2:
746
+ timesheetHourIds = _context7.sent;
747
+ return _context7.abrupt("return", Promise.all(timesheetHourIds.map(/*#__PURE__*/function () {
748
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(id) {
749
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
750
+ while (1) switch (_context6.prev = _context6.next) {
751
+ case 0:
752
+ return _context6.abrupt("return", _this.axiosInstance.get("/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + id).then(function (res) {
753
+ return res.data;
754
+ }).then(toTimesheetDayEntry));
755
+ case 1:
756
+ case "end":
757
+ return _context6.stop();
758
+ }
759
+ }, _callee6);
760
+ }));
761
+ return function (_x9) {
762
+ return _ref2.apply(this, arguments);
763
+ };
764
+ }())));
765
+ case 4:
766
+ case "end":
767
+ return _context7.stop();
696
768
  }
697
- }, _callee4, this, [[9, 18]]);
769
+ }, _callee7, this);
698
770
  }));
699
- function getTimesheetHours(_x7, _x8, _x9, _x10) {
771
+ function getTimesheetHours(_x8) {
700
772
  return _getTimesheetHours.apply(this, arguments);
701
773
  }
702
774
  return getTimesheetHours;
703
775
  }();
704
776
  _proto.getPayPeriods = /*#__PURE__*/function () {
705
- var _getPayPeriods = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
777
+ var _getPayPeriods = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
706
778
  var url, query, data, payPeriods, _iterator3, _step3, payPeriod;
707
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
708
- while (1) switch (_context5.prev = _context5.next) {
779
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
780
+ while (1) switch (_context8.prev = _context8.next) {
709
781
  case 0:
710
782
  url = "/services/data/" + SF_API_VERSION + "/query";
711
783
  query = "SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c";
712
- _context5.next = 4;
784
+ _context8.next = 4;
713
785
  return this.axiosInstance.get(url, {
714
786
  params: {
715
787
  q: query
716
788
  }
717
789
  });
718
790
  case 4:
719
- data = _context5.sent;
791
+ data = _context8.sent;
720
792
  payPeriods = [];
721
793
  for (_iterator3 = _createForOfIteratorHelperLoose(data.data.records); !(_step3 = _iterator3()).done;) {
722
794
  payPeriod = _step3.value;
@@ -726,12 +798,12 @@ var SFTimesheetClient = /*#__PURE__*/function () {
726
798
  endDate: payPeriod.EndDate__c
727
799
  });
728
800
  }
729
- return _context5.abrupt("return", payPeriods);
801
+ return _context8.abrupt("return", payPeriods);
730
802
  case 8:
731
803
  case "end":
732
- return _context5.stop();
804
+ return _context8.stop();
733
805
  }
734
- }, _callee5, this);
806
+ }, _callee8, this);
735
807
  }));
736
808
  function getPayPeriods() {
737
809
  return _getPayPeriods.apply(this, arguments);
@@ -739,12 +811,12 @@ var SFTimesheetClient = /*#__PURE__*/function () {
739
811
  return getPayPeriods;
740
812
  }();
741
813
  _proto.uploadImageToTimesheet = /*#__PURE__*/function () {
742
- var _uploadImageToTimesheet = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(file, filename, timesheetId) {
743
- var form, uploadRes, versionId, _yield$this$axiosInst3, data, contentDocumentId, _err$response;
744
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
745
- while (1) switch (_context6.prev = _context6.next) {
814
+ var _uploadImageToTimesheet = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(file, filename, timesheetId) {
815
+ var form, uploadRes, versionId, _yield$this$axiosInst4, data, contentDocumentId, _err$response;
816
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
817
+ while (1) switch (_context9.prev = _context9.next) {
746
818
  case 0:
747
- _context6.prev = 0;
819
+ _context9.prev = 0;
748
820
  form = new FormData();
749
821
  form.append('entity_content', JSON.stringify({
750
822
  Title: filename,
@@ -756,24 +828,24 @@ var SFTimesheetClient = /*#__PURE__*/function () {
756
828
  filename: filename,
757
829
  contentType: 'application/octet-stream'
758
830
  });
759
- _context6.next = 6;
831
+ _context9.next = 6;
760
832
  return this.axiosInstance.post("/services/data/" + SF_API_VERSION + "/sobjects/ContentVersion", form, {
761
833
  headers: form.getHeaders()
762
834
  });
763
835
  case 6:
764
- uploadRes = _context6.sent;
836
+ uploadRes = _context9.sent;
765
837
  versionId = uploadRes.data.id; //get ContentDocumentId
766
- _context6.next = 10;
838
+ _context9.next = 10;
767
839
  return this.axiosInstance.get("/services/data/" + SF_API_VERSION + "/query", {
768
840
  params: {
769
841
  q: "SELECT ContentDocumentId FROM ContentVersion WHERE Id = '" + versionId + "'"
770
842
  }
771
843
  });
772
844
  case 10:
773
- _yield$this$axiosInst3 = _context6.sent;
774
- data = _yield$this$axiosInst3.data;
845
+ _yield$this$axiosInst4 = _context9.sent;
846
+ data = _yield$this$axiosInst4.data;
775
847
  contentDocumentId = data.records[0].ContentDocumentId;
776
- _context6.next = 15;
848
+ _context9.next = 15;
777
849
  return this.axiosInstance.post("/services/data/" + SF_API_VERSION + "/sobjects/ContentDocumentLink", {
778
850
  ContentDocumentId: contentDocumentId,
779
851
  LinkedEntityId: timesheetId,
@@ -781,20 +853,20 @@ var SFTimesheetClient = /*#__PURE__*/function () {
781
853
  Visibility: 'AllUsers'
782
854
  });
783
855
  case 15:
784
- _context6.next = 21;
856
+ _context9.next = 21;
785
857
  break;
786
858
  case 17:
787
- _context6.prev = 17;
788
- _context6.t0 = _context6["catch"](0);
789
- console.error('Salesforce error response:', _context6.t0 == null || (_err$response = _context6.t0.response) == null ? void 0 : _err$response.data);
790
- console.error('Error uploading and linking image:', _context6.t0 == null ? void 0 : _context6.t0.message);
859
+ _context9.prev = 17;
860
+ _context9.t0 = _context9["catch"](0);
861
+ console.error('Salesforce error response:', _context9.t0 == null || (_err$response = _context9.t0.response) == null ? void 0 : _err$response.data);
862
+ console.error('Error uploading and linking image:', _context9.t0 == null ? void 0 : _context9.t0.message);
791
863
  case 21:
792
864
  case "end":
793
- return _context6.stop();
865
+ return _context9.stop();
794
866
  }
795
- }, _callee6, this, [[0, 17]]);
867
+ }, _callee9, this, [[0, 17]]);
796
868
  }));
797
- function uploadImageToTimesheet(_x11, _x12, _x13) {
869
+ function uploadImageToTimesheet(_x10, _x11, _x12) {
798
870
  return _uploadImageToTimesheet.apply(this, arguments);
799
871
  }
800
872
  return uploadImageToTimesheet;
@@ -1 +1 @@
1
- {"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/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'\nimport FormData from 'form-data'\n\ninterface SFTimesheetHourField {\n Id: string\n Date__c: Date\n Callback__c: number\n HoursEBAdjusted__c: number\n Misc__c: number\n OT1__c: number\n OT2__c: number\n OnCall__c: number\n Misc1__c: number\n Misc_1_Hours__c: number\n Misc_2_Hours__c: number\n Misc_3_Hours__c: number\n Misc_4_Hours__c: number\n Stat1__c: number\n Stat2__c: number\n In_Charge__c: number\n Shift_Travel_Stipend__c: number\n LastModifiedDate: Date\n}\ntype SFTimesheetHourFieldKeys = (keyof SFTimesheetHourField)[]\n\nexport class SFTimesheetClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\n const response = await this.axiosInstance.patch(url, {\n Date__c: timesheet.date,\n Callback__c: timesheet.callbackHours,\n HoursEBAdjusted__c: timesheet.regularHours,\n Misc__c: timesheet.miscHours,\n OT1__c: timesheet.overtime1Hours,\n OT2__c: timesheet.overtime2Hours,\n OnCall__c: timesheet.onCallHours,\n Misc1__c: timesheet.misc1HoursA,\n Misc_1_Hours__c: timesheet.misc1HoursB,\n Misc_2_Hours__c: timesheet.misc2Hours,\n Misc_3_Hours__c: timesheet.misc3Hours,\n Misc_4_Hours__c: timesheet.misc4Hours,\n Stat1__c: timesheet.stat1Hours,\n Stat2__c: timesheet.stat2Hours,\n In_Charge__c: timesheet.inChargeHours,\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\n })\n\n if (![200, 204, 304].includes(response.status))\n throw new Error(`got error status code ${response.status}`)\n } catch (error) {\n console.error('Error Updating Timesheet Hour: ', error.message)\n }\n }\n\n async getTimesheetIds(workorderId: string, periodStartDate?: Date, periodEndDate?: Date): Promise<string[]> {\n // Find all timesheet Ids that belong to this WO\n const url = `/services/data/${SF_API_VERSION}/query`\n let query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'`\n try {\n if (periodStartDate && periodEndDate) {\n query += `\n AND PayPeriodStartDate__c <= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND PayPeriodEndDate__c >= ${new Date(periodEndDate).toISOString().substring(0, 10)}\n `\n }\n }\n catch (error) {\n console.error('Invalid period dates', error)\n }\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(record => record.Id)\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async getTimesheetHours(workorderId: string, fields?: SFTimesheetHourFieldKeys[], periodStartDate?: Date, periodEndDate?: Date): Promise<TimesheetDayEntry[]> {\n const timesheetIds = await this.getTimesheetIds(workorderId, periodStartDate, periodEndDate)\n\n const allHours: SFTimesheetHourField[] = []\n const url = `/services/data/${SF_API_VERSION}/query`\n for (const timesheetId of timesheetIds) {\n let query = `\n SELECT ${fields?.join(',') || 'FIELDS(STANDARD)'}\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'`\n try {\n if (fields?.length) {\n query += `\n AND Date__c >= ${new Date(periodStartDate).toISOString().substring(0, 10)}\n AND Date__c <= ${new Date(periodEndDate).toISOString().substring(0, 10)}`\n }\n\n const {\n data: { records }\n } = await this.axiosInstance.get<{ records: SFTimesheetHourField[] }>(url, {\n params: { q: query }\n })\n allHours.push(...records)\n } catch (err) {\n console.error(`Failed to fetch`, err)\n }\n }\n return allHours.map(toTimesheetDayEntry)\n }\n\n async getPayPeriods(): Promise<any> {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Name,\n StartDate__c,\n EndDate__c\n FROM PayPeriod__c`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let payPeriods = []\n\n for (const payPeriod of data.data.records) {\n payPeriods.push({\n name: payPeriod.Name,\n startDate: payPeriod.StartDate__c,\n endDate: payPeriod.EndDate__c\n })\n }\n\n return payPeriods\n }\n\n async uploadImageToTimesheet(\n file: Buffer,\n filename: string,\n timesheetId: string\n ): Promise<void> {\n try {\n const form = new FormData()\n form.append(\n 'entity_content',\n JSON.stringify({\n Title: filename,\n PathOnClient: filename\n }),\n { contentType: 'application/json' }\n )\n\n form.append('VersionData', file, {\n filename,\n contentType: 'application/octet-stream'\n })\n const uploadRes = await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentVersion`,\n form,\n { headers: form.getHeaders() }\n )\n\n const versionId = uploadRes.data.id\n\n //get ContentDocumentId\n const { data } = await this.axiosInstance.get(\n `/services/data/${SF_API_VERSION}/query`,\n {\n params: {\n q: `SELECT ContentDocumentId FROM ContentVersion WHERE Id = '${versionId}'`\n }\n }\n )\n const contentDocumentId = data.records[0].ContentDocumentId\n\n await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentDocumentLink`,\n {\n ContentDocumentId: contentDocumentId,\n LinkedEntityId: timesheetId,\n ShareType: 'V',\n Visibility: 'AllUsers'\n }\n )\n } catch (err) {\n console.error('Salesforce error response:', err?.response?.data)\n console.error('Error uploading and linking image:', err?.message)\n }\n }\n}\n\nfunction toTimesheetDayEntry(raw: SFTimesheetHourField): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } 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","getTimesheetIds","_getTimesheetIds","workorderId","periodStartDate","periodEndDate","query","_yield$this$axiosInst","records","Date","toISOString","substring","get","params","q","map","record","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","value","push","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHours","_getTimesheetHours","_callee4","fields","timesheetIds","allHours","_iterator2","_step2","timesheetId","_yield$this$axiosInst2","_callee4$","_context4","join","length","toTimesheetDayEntry","_x7","_x8","_x9","_x10","getPayPeriods","_getPayPeriods","_callee5","payPeriods","_iterator3","_step3","payPeriod","_callee5$","_context5","name","Name","startDate","StartDate__c","endDate","EndDate__c","uploadImageToTimesheet","_uploadImageToTimesheet","_callee6","file","filename","form","uploadRes","versionId","_yield$this$axiosInst3","contentDocumentId","_err$response","_callee6$","_context6","JSON","stringify","Title","PathOnClient","contentType","ContentDocumentId","LinkedEntityId","ShareType","Visibility","_x11","_x12","_x13","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","fetchPractitionerByEmail","_fetchPractitionerByEmail","email","firstName","FirstName__c","lastName","LastName__c","Email__c","staffId","StaffID__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","then","establishmentId","HospitalID__c","region","Region__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startdate__c","createdAt","CreatedDate","SFPayPeriodClient","getPayPeriodAndTimesheetIdsForWorkorder","_getPayPeriodAndTimesheetIdsForWorkorder","workorderID","payPeriodIds","payPeriodId","PayPeriod__c","getPayPeriodDatesForPayPeriodIds","_getPayPeriodDatesForPayPeriodIds","payPeriodIDs","payPeriodDates","listOfIdsForQuery","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.esm.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'\nimport FormData from 'form-data'\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 async uploadImageToTimesheet(\n file: Buffer,\n filename: string,\n timesheetId: string\n ): Promise<void> {\n try {\n const form = new FormData()\n form.append(\n 'entity_content',\n JSON.stringify({\n Title: filename,\n PathOnClient: filename\n }),\n { contentType: 'application/json' }\n )\n\n form.append('VersionData', file, {\n filename,\n contentType: 'application/octet-stream'\n })\n const uploadRes = await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentVersion`,\n form,\n { headers: form.getHeaders() }\n )\n\n const versionId = uploadRes.data.id\n\n //get ContentDocumentId\n const { data } = await this.axiosInstance.get(\n `/services/data/${SF_API_VERSION}/query`,\n {\n params: {\n q: `SELECT ContentDocumentId FROM ContentVersion WHERE Id = '${versionId}'`\n }\n }\n )\n const contentDocumentId = data.records[0].ContentDocumentId\n\n await this.axiosInstance.post(\n `/services/data/${SF_API_VERSION}/sobjects/ContentDocumentLink`,\n {\n ContentDocumentId: contentDocumentId,\n LinkedEntityId: timesheetId,\n ShareType: 'V',\n Visibility: 'AllUsers'\n }\n )\n } catch (err) {\n console.error('Salesforce error response:', err?.response?.data)\n console.error('Error uploading and linking image:', err?.message)\n }\n }\n}\n\nfunction toTimesheetDayEntry(raw: 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","uploadImageToTimesheet","_uploadImageToTimesheet","_callee9","file","filename","form","uploadRes","versionId","_yield$this$axiosInst4","contentDocumentId","_err$response","_callee9$","_context9","JSON","stringify","Title","PathOnClient","contentType","ContentDocumentId","LinkedEntityId","ShareType","Visibility","_x10","_x11","_x12","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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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.12.0",
2
+ "version": "1.13.0",
3
3
  "main": "dist/index.js",
4
4
  "typings": "dist/index.d.ts",
5
5
  "files": [
package/src/api/.env ADDED
@@ -0,0 +1,5 @@
1
+ I THINK THIS ONE IS WRONG
2
+ SF_CLIENT_ID=3MVG9TZvGM_0NqB09H2fPRxeiDEsovly3D10kwNjOYJNTwBhMc5JHQgCdaSM.2N1V04tb_Tuyj_qktBPNueQd
3
+ SF_CLIENT_SECRET=6F4D40003CF5B156A2AD2BFAD384E74AA9FFFD574E8753EAC485E3C478C50F9F
4
+ GRANT_TYPE=client_credentials
5
+ SALESFORCE_URL=https://do0000000d247eaa--phealth.sandbox.my.salesforce.com