pha-hermes 1.0.1 → 1.0.3

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.
@@ -2,7 +2,7 @@ import { SFTimesheetClient } from './timesheet/timesheetClient';
2
2
  import { SFPractitionerClient } from './practitioner/practitionerClient';
3
3
  import { Role, Workorder } from '../models';
4
4
  export declare const SF_API_VERSION: string;
5
- export declare class SFApiClient {
5
+ export default class SFApiClient {
6
6
  private instance;
7
7
  private axiosInstance;
8
8
  private authenticator;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './api/apiClient';
2
2
  export * from './api/timesheet/timesheetClient';
3
3
  export * from './api/auth/auth';
4
+ export * from './models';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  'use strict'
3
3
 
4
4
  if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./hermes.cjs.production.min.js')
5
+ module.exports = require('./pha-hermes.cjs.production.min.js')
6
6
  } else {
7
- module.exports = require('./hermes.cjs.development.js')
7
+ module.exports = require('./pha-hermes.cjs.development.js')
8
8
  }
@@ -1,4 +1,5 @@
1
1
  export interface TimesheetDayEntry {
2
+ date?: Date;
2
3
  callbackHours?: number;
3
4
  regularHours?: number;
4
5
  miscHours?: number;
@@ -437,6 +437,7 @@ var SFTimesheetClient = /*#__PURE__*/function () {
437
437
  url = "/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + timesheetHourId;
438
438
  _context.next = 4;
439
439
  return this.axiosInstance.patch(url, {
440
+ Date__c: timesheet.date,
440
441
  Callback__c: timesheet.callbackHours,
441
442
  HoursEBAdjusted__c: timesheet.regularHours,
442
443
  Misc__c: timesheet.miscHours,
@@ -589,6 +590,7 @@ var SFTimesheetClient = /*#__PURE__*/function () {
589
590
  }();
590
591
  function toTimesheetDayEntry(raw) {
591
592
  return {
593
+ date: raw.Date__c,
592
594
  callbackHours: raw.Callback__c,
593
595
  regularHours: raw.HoursEBAdjusted__c,
594
596
  miscHours: raw.Misc__c,
@@ -607,180 +609,9 @@ function toTimesheetDayEntry(raw) {
607
609
  };
608
610
  }
609
611
 
610
- var SFPractitionerClient = /*#__PURE__*/function () {
611
- function SFPractitionerClient(axiosInstance) {
612
- this.axiosInstance = axiosInstance;
613
- }
614
- var _proto = SFPractitionerClient.prototype;
615
- _proto.fetchPractitioners = /*#__PURE__*/function () {
616
- var _fetchPractitioners = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
617
- var url, query, _yield$this$axiosInst, records;
618
- return _regeneratorRuntime().wrap(function _callee$(_context) {
619
- while (1) switch (_context.prev = _context.next) {
620
- case 0:
621
- _context.prev = 0;
622
- url = "/services/data/" + SF_API_VERSION + "/query";
623
- query = "\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n ";
624
- _context.next = 5;
625
- return this.axiosInstance.get(url, {
626
- params: {
627
- q: query
628
- }
629
- });
630
- case 5:
631
- _yield$this$axiosInst = _context.sent;
632
- records = _yield$this$axiosInst.data.records;
633
- return _context.abrupt("return", records.map(toPractitioner));
634
- case 10:
635
- _context.prev = 10;
636
- _context.t0 = _context["catch"](0);
637
- console.error('Error fetching practitioners: ', _context.t0.message);
638
- throw _context.t0;
639
- case 14:
640
- case "end":
641
- return _context.stop();
642
- }
643
- }, _callee, this, [[0, 10]]);
644
- }));
645
- function fetchPractitioners() {
646
- return _fetchPractitioners.apply(this, arguments);
647
- }
648
- return fetchPractitioners;
649
- }();
650
- return SFPractitionerClient;
651
- }();
652
- function toPractitioner(raw) {
653
- return {
654
- id: raw.Id,
655
- firstName: raw.FirstName__c,
656
- lastName: raw.LastName__c,
657
- email: raw.Email__c,
658
- staffId: raw.StaffID__c
659
- };
660
- }
661
-
662
612
  var SF_API_VERSION = 'v57.0';
663
- var SFApiClient = /*#__PURE__*/function () {
664
- function SFApiClient(baseUrl) {
665
- this.instance = undefined;
666
- this.axiosInstance = axios.create();
667
- this.baseUrl = baseUrl;
668
- this.axiosInstance.defaults.baseURL = baseUrl != null ? baseUrl : 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com';
669
- this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl);
670
- this.timesheetClient = new SFTimesheetClient(this.axiosInstance);
671
- this.practitionerClient = new SFPractitionerClient(this.axiosInstance);
672
- }
673
- var _proto = SFApiClient.prototype;
674
- _proto.init = /*#__PURE__*/function () {
675
- var _init = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(sfClientId, sfClientSecret) {
676
- return _regeneratorRuntime().wrap(function _callee$(_context) {
677
- while (1) switch (_context.prev = _context.next) {
678
- case 0:
679
- _context.next = 2;
680
- return this.authenticator.initializeAuth(sfClientId, sfClientSecret);
681
- case 2:
682
- case "end":
683
- return _context.stop();
684
- }
685
- }, _callee, this);
686
- }));
687
- function init(_x, _x2) {
688
- return _init.apply(this, arguments);
689
- }
690
- return init;
691
- }();
692
- _proto.setInstance = function setInstance(instance) {
693
- this.instance = instance;
694
- };
695
- _proto.getInstance = function getInstance() {
696
- return this.instance;
697
- };
698
- _proto.fetchWorkOrders = /*#__PURE__*/function () {
699
- var _fetchWorkOrders = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(assignedStaffId) {
700
- var url, query;
701
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
702
- while (1) switch (_context2.prev = _context2.next) {
703
- case 0:
704
- _context2.prev = 0;
705
- url = "/services/data/" + SF_API_VERSION + "/query";
706
- query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c";
707
- _context2.next = 5;
708
- return this.axiosInstance.get(url, {
709
- params: {
710
- q: query
711
- }
712
- }).then(function (_ref) {
713
- var records = _ref.data.records;
714
- return records.map(function (record) {
715
- return {
716
- id: record.Id,
717
- establishmentId: record.HospitalID__c,
718
- establishmentName: record.HospitalName__c,
719
- role: record.ProfessionalDesignation__c
720
- };
721
- });
722
- });
723
- case 5:
724
- return _context2.abrupt("return", _context2.sent);
725
- case 8:
726
- _context2.prev = 8;
727
- _context2.t0 = _context2["catch"](0);
728
- console.error('Error fetching work orders: ', _context2.t0.message);
729
- throw _context2.t0;
730
- case 12:
731
- case "end":
732
- return _context2.stop();
733
- }
734
- }, _callee2, this, [[0, 8]]);
735
- }));
736
- function fetchWorkOrders(_x3) {
737
- return _fetchWorkOrders.apply(this, arguments);
738
- }
739
- return fetchWorkOrders;
740
- }();
741
- _proto.fetchRoles = /*#__PURE__*/function () {
742
- var _fetchRoles = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
743
- var url, query;
744
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
745
- while (1) switch (_context3.prev = _context3.next) {
746
- case 0:
747
- _context3.prev = 0;
748
- url = "/services/data/" + SF_API_VERSION + "/query";
749
- query = "SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true";
750
- return _context3.abrupt("return", this.axiosInstance.get(url, {
751
- params: {
752
- q: query
753
- }
754
- }).then(function (_ref2) {
755
- var records = _ref2.data.records;
756
- return records.map(function (record) {
757
- return {
758
- label: record.Label,
759
- value: record.Value
760
- };
761
- });
762
- }));
763
- case 6:
764
- _context3.prev = 6;
765
- _context3.t0 = _context3["catch"](0);
766
- console.error('Error fetching roles: ', _context3.t0.message);
767
- throw _context3.t0;
768
- case 10:
769
- case "end":
770
- return _context3.stop();
771
- }
772
- }, _callee3, this, [[0, 6]]);
773
- }));
774
- function fetchRoles() {
775
- return _fetchRoles.apply(this, arguments);
776
- }
777
- return fetchRoles;
778
- }();
779
- return SFApiClient;
780
- }();
781
613
 
782
- exports.SFApiClient = SFApiClient;
783
614
  exports.SFAuthenticator = SFAuthenticator;
784
615
  exports.SFTimesheetClient = SFTimesheetClient;
785
616
  exports.SF_API_VERSION = SF_API_VERSION;
786
- //# sourceMappingURL=hermes.cjs.development.js.map
617
+ //# sourceMappingURL=pha-hermes.cjs.development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pha-hermes.cjs.development.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport default class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e,r,n,o,i,a){try{var s=t[i](a),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(o,i){var a=t.apply(e,r);function s(t){n(a,o,i,s,c,"next",t)}function c(t){n(a,o,i,s,c,"throw",t)}s(void 0)}))}}function i(){i=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.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 i=Object.create((e&&e.prototype instanceof y?e:y).prototype),a=new S(n||[]);return o(i,"_invoke",{value:E(t,r,a)}),i}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",v="completed",_={};function y(){}function m(){}function g(){}var w={};h(w,s,(function(){return this}));var x=Object.getPrototypeOf,H=x&&x(x(j([])));H&&H!==r&&n.call(H,s)&&(w=H);var b=g.prototype=y.prototype=Object.create(w);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,i,a,s){var c=l(t[o],t,i);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,a,s)}),(function(t){r("throw",t,a,s)})):e.resolve(h).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function E(e,r,n){var o=p;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=L(s,n);if(c){if(c===_)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=l(e,r,n);if("normal"===u.type){if(o=n.done?v:"suspendedYield",u.arg===_)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=v,n.method="throw",n.arg=u.arg)}}}function L(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),_;var i=l(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,_;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,_):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,_)}function I(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(I,this),this.reset(!0)}function j(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(typeof e+" is not iterable")}return m.prototype=g,o(b,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:m,configurable:!0}),m.displayName=h(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"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}},k(T.prototype),h(T.prototype,c,(function(){return this})),e.AsyncIterator=T,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new T(f(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},k(b),h(b,u,"Generator"),h(b,s,(function(){return this})),h(b,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=j,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,_):this.complete(a)},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),_},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),_}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:j(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),_}},e}var a=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=o(i().mark((function t(e,r){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent;case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=o(i().mark((function t(e,n){var o,a,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new r,!this.refreshToken){t.next=6;break}a.append("refresh_token",this.refreshToken),a.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}a.append("client_id",e),a.append("client_secret",n),a.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",a,{headers:a.getHeaders()});case 15:if(this.token=null==(s=t.sent)||null==(o=s.data)?void 0:o.access_token,this.token){t.next=19;break}throw new Error("Authentication failed, could not get the access token");case 19:return t.abrupt("return",this.token);case 20:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),t}(),s=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=o(i().mark((function t(e,r){var n,o;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+u+"/sobjects/TimeSheetHour__c/"+e,t.next=4,this.axiosInstance.patch(n,{Date__c:r.date,Callback__c:r.callbackHours,HoursEBAdjusted__c:r.regularHours,Misc__c:r.miscHours,OT1__c:r.overtime1Hours,OT2__c:r.overtime2Hours,OnCall__c:r.onCallHours,Misc1__c:r.misc1HoursA,Misc_1_Hours__c:r.misc1HoursB,Misc_2_Hours__c:r.misc2Hours,Misc_3_Hours__c:r.misc3Hours,Misc_4_Hours__c:r.misc4Hours,Stat1__c:r.stat1Hours,Stat2__c:r.stat2Hours,In_Charge__c:r.inChargeHours,Shift_Travel_Stipend__c:r.shiftTravelPerDiemHours});case 4:if([200,204,304].includes((o=t.sent).status)){t.next=7;break}throw new Error("got error status code "+o.status);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),console.error("Error Updating Timesheet Hour: ",t.t0.message);case 12:case"end":return t.stop()}}),t,this,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetId=function(){var t=o(i().mark((function t(e){var r,n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+u+"/query",n="SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '"+e+"' LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=o(i().mark((function t(e){var r,n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+u+"/query",n="SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=o(i().mark((function t(e){var r=this;return i().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(i().mark((function t(e){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+u+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(c));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())));case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}();function c(t){return{date:t.Date__c,callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c}}var u="v57.0";exports.SFAuthenticator=a,exports.SFTimesheetClient=s,exports.SF_API_VERSION=u;
2
+ //# sourceMappingURL=pha-hermes.cjs.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pha-hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport default class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","wrap","_context","prev","next","postToken","headers","common","sent","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_context2","FormData","refreshToken","append","Error","post","getHeaders","token","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","_context5","Promise","all","_ref2","_callee4","id","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw"],"mappings":"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"}
@@ -431,6 +431,7 @@ var SFTimesheetClient = /*#__PURE__*/function () {
431
431
  url = "/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + timesheetHourId;
432
432
  _context.next = 4;
433
433
  return this.axiosInstance.patch(url, {
434
+ Date__c: timesheet.date,
434
435
  Callback__c: timesheet.callbackHours,
435
436
  HoursEBAdjusted__c: timesheet.regularHours,
436
437
  Misc__c: timesheet.miscHours,
@@ -583,6 +584,7 @@ var SFTimesheetClient = /*#__PURE__*/function () {
583
584
  }();
584
585
  function toTimesheetDayEntry(raw) {
585
586
  return {
587
+ date: raw.Date__c,
586
588
  callbackHours: raw.Callback__c,
587
589
  regularHours: raw.HoursEBAdjusted__c,
588
590
  miscHours: raw.Misc__c,
@@ -601,177 +603,7 @@ function toTimesheetDayEntry(raw) {
601
603
  };
602
604
  }
603
605
 
604
- var SFPractitionerClient = /*#__PURE__*/function () {
605
- function SFPractitionerClient(axiosInstance) {
606
- this.axiosInstance = axiosInstance;
607
- }
608
- var _proto = SFPractitionerClient.prototype;
609
- _proto.fetchPractitioners = /*#__PURE__*/function () {
610
- var _fetchPractitioners = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
611
- var url, query, _yield$this$axiosInst, records;
612
- return _regeneratorRuntime().wrap(function _callee$(_context) {
613
- while (1) switch (_context.prev = _context.next) {
614
- case 0:
615
- _context.prev = 0;
616
- url = "/services/data/" + SF_API_VERSION + "/query";
617
- query = "\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n ";
618
- _context.next = 5;
619
- return this.axiosInstance.get(url, {
620
- params: {
621
- q: query
622
- }
623
- });
624
- case 5:
625
- _yield$this$axiosInst = _context.sent;
626
- records = _yield$this$axiosInst.data.records;
627
- return _context.abrupt("return", records.map(toPractitioner));
628
- case 10:
629
- _context.prev = 10;
630
- _context.t0 = _context["catch"](0);
631
- console.error('Error fetching practitioners: ', _context.t0.message);
632
- throw _context.t0;
633
- case 14:
634
- case "end":
635
- return _context.stop();
636
- }
637
- }, _callee, this, [[0, 10]]);
638
- }));
639
- function fetchPractitioners() {
640
- return _fetchPractitioners.apply(this, arguments);
641
- }
642
- return fetchPractitioners;
643
- }();
644
- return SFPractitionerClient;
645
- }();
646
- function toPractitioner(raw) {
647
- return {
648
- id: raw.Id,
649
- firstName: raw.FirstName__c,
650
- lastName: raw.LastName__c,
651
- email: raw.Email__c,
652
- staffId: raw.StaffID__c
653
- };
654
- }
655
-
656
606
  var SF_API_VERSION = 'v57.0';
657
- var SFApiClient = /*#__PURE__*/function () {
658
- function SFApiClient(baseUrl) {
659
- this.instance = undefined;
660
- this.axiosInstance = axios.create();
661
- this.baseUrl = baseUrl;
662
- this.axiosInstance.defaults.baseURL = baseUrl != null ? baseUrl : 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com';
663
- this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl);
664
- this.timesheetClient = new SFTimesheetClient(this.axiosInstance);
665
- this.practitionerClient = new SFPractitionerClient(this.axiosInstance);
666
- }
667
- var _proto = SFApiClient.prototype;
668
- _proto.init = /*#__PURE__*/function () {
669
- var _init = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(sfClientId, sfClientSecret) {
670
- return _regeneratorRuntime().wrap(function _callee$(_context) {
671
- while (1) switch (_context.prev = _context.next) {
672
- case 0:
673
- _context.next = 2;
674
- return this.authenticator.initializeAuth(sfClientId, sfClientSecret);
675
- case 2:
676
- case "end":
677
- return _context.stop();
678
- }
679
- }, _callee, this);
680
- }));
681
- function init(_x, _x2) {
682
- return _init.apply(this, arguments);
683
- }
684
- return init;
685
- }();
686
- _proto.setInstance = function setInstance(instance) {
687
- this.instance = instance;
688
- };
689
- _proto.getInstance = function getInstance() {
690
- return this.instance;
691
- };
692
- _proto.fetchWorkOrders = /*#__PURE__*/function () {
693
- var _fetchWorkOrders = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(assignedStaffId) {
694
- var url, query;
695
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
696
- while (1) switch (_context2.prev = _context2.next) {
697
- case 0:
698
- _context2.prev = 0;
699
- url = "/services/data/" + SF_API_VERSION + "/query";
700
- query = assignedStaffId ? "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '" + assignedStaffId + "'" : "SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c";
701
- _context2.next = 5;
702
- return this.axiosInstance.get(url, {
703
- params: {
704
- q: query
705
- }
706
- }).then(function (_ref) {
707
- var records = _ref.data.records;
708
- return records.map(function (record) {
709
- return {
710
- id: record.Id,
711
- establishmentId: record.HospitalID__c,
712
- establishmentName: record.HospitalName__c,
713
- role: record.ProfessionalDesignation__c
714
- };
715
- });
716
- });
717
- case 5:
718
- return _context2.abrupt("return", _context2.sent);
719
- case 8:
720
- _context2.prev = 8;
721
- _context2.t0 = _context2["catch"](0);
722
- console.error('Error fetching work orders: ', _context2.t0.message);
723
- throw _context2.t0;
724
- case 12:
725
- case "end":
726
- return _context2.stop();
727
- }
728
- }, _callee2, this, [[0, 8]]);
729
- }));
730
- function fetchWorkOrders(_x3) {
731
- return _fetchWorkOrders.apply(this, arguments);
732
- }
733
- return fetchWorkOrders;
734
- }();
735
- _proto.fetchRoles = /*#__PURE__*/function () {
736
- var _fetchRoles = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
737
- var url, query;
738
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
739
- while (1) switch (_context3.prev = _context3.next) {
740
- case 0:
741
- _context3.prev = 0;
742
- url = "/services/data/" + SF_API_VERSION + "/query";
743
- query = "SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true";
744
- return _context3.abrupt("return", this.axiosInstance.get(url, {
745
- params: {
746
- q: query
747
- }
748
- }).then(function (_ref2) {
749
- var records = _ref2.data.records;
750
- return records.map(function (record) {
751
- return {
752
- label: record.Label,
753
- value: record.Value
754
- };
755
- });
756
- }));
757
- case 6:
758
- _context3.prev = 6;
759
- _context3.t0 = _context3["catch"](0);
760
- console.error('Error fetching roles: ', _context3.t0.message);
761
- throw _context3.t0;
762
- case 10:
763
- case "end":
764
- return _context3.stop();
765
- }
766
- }, _callee3, this, [[0, 6]]);
767
- }));
768
- function fetchRoles() {
769
- return _fetchRoles.apply(this, arguments);
770
- }
771
- return fetchRoles;
772
- }();
773
- return SFApiClient;
774
- }();
775
607
 
776
- export { SFApiClient, SFAuthenticator, SFTimesheetClient, SF_API_VERSION };
777
- //# sourceMappingURL=hermes.esm.js.map
608
+ export { SFAuthenticator, SFTimesheetClient, SF_API_VERSION };
609
+ //# sourceMappingURL=pha-hermes.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pha-hermes.esm.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Date__c: timesheet.date, \r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n date: raw.Date__c,\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport default class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pha-hermes",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "files": [
@@ -11,8 +11,7 @@
11
11
  "node": ">=10",
12
12
  "npm": ">=6.14.13"
13
13
  },
14
- "type": "module",
15
- "module": "dist/hermes.esm.js",
14
+ "module": "dist/pha-hermes.esm.js",
16
15
  "scripts": {
17
16
  "build": "tsdx build",
18
17
  "link:watch": "npm link && tsdx watch"
@@ -5,7 +5,7 @@ import { SFPractitionerClient } from './practitioner/practitionerClient'
5
5
  import { Role, Workorder } from '../models'
6
6
  export const SF_API_VERSION: string = 'v57.0'
7
7
 
8
- export class SFApiClient {
8
+ export default class SFApiClient {
9
9
  private instance: SFApiClient | undefined = undefined
10
10
  private axiosInstance: AxiosInstance = axios.create()
11
11
  private authenticator: SFAuthenticator
@@ -1 +0,0 @@
1
- {"version":3,"file":"hermes.cjs.development.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e,r,n,o,a,i){try{var s=t[a](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(o,a){var i=t.apply(e,r);function s(t){n(i,o,a,s,c,"next",t)}function c(t){n(i,o,a,s,c,"throw",t)}s(void 0)}))}}function a(){a=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new S(n||[]);return o(a,"_invoke",{value:I(t,r,i)}),a}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var p="suspendedStart",_="executing",d="completed",v={};function m(){}function y(){}function g(){}var w={};h(w,s,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(P([])));b&&b!==r&&n.call(b,s)&&(w=b);var E=g.prototype=m.prototype=Object.create(w);function H(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(o,a,i,s){var c=l(t[o],t,a);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){r("next",t,i,s)}),(function(t){r("throw",t,i,s)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,s)}))}s(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function I(e,r,n){var o=p;return function(a,i){if(o===_)throw Error("Generator is already running");if(o===d){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var s=n.delegate;if(s){var c=T(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=_;var u=l(e,r,n);if("normal"===u.type){if(o=n.done?d:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=d,n.method="throw",n.arg=u.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var a=l(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,v;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function P(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return y.prototype=g,o(E,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:y,configurable:!0}),y.displayName=h(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,h(t,u,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},H(k.prototype),h(k.prototype,c,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new k(f(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},H(E),h(E,u,"Generator"),h(E,s,(function(){return this})),h(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=P,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:P(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var i=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=o(a().mark((function t(e,r){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent;case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=o(a().mark((function t(e,n){var o,i,s;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new r,!this.refreshToken){t.next=6;break}i.append("refresh_token",this.refreshToken),i.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}i.append("client_id",e),i.append("client_secret",n),i.append("grant_type","client_credentials"),t.next=13;break;case 12:throw new Error("Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided");case 13:return t.next=15,this.axiosTokenInstance.post("/services/oauth2/token",i,{headers:i.getHeaders()});case 15:if(this.token=null==(s=t.sent)||null==(o=s.data)?void 0:o.access_token,this.token){t.next=19;break}throw new Error("Authentication failed, could not get the access token");case 19:return t.abrupt("return",this.token);case 20:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),t}(),s=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=o(a().mark((function t(e,r){var n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e,t.next=4,this.axiosInstance.patch(n,{Callback__c:r.callbackHours,HoursEBAdjusted__c:r.regularHours,Misc__c:r.miscHours,OT1__c:r.overtime1Hours,OT2__c:r.overtime2Hours,OnCall__c:r.onCallHours,Misc1__c:r.misc1HoursA,Misc_1_Hours__c:r.misc1HoursB,Misc_2_Hours__c:r.misc2Hours,Misc_3_Hours__c:r.misc3Hours,Misc_4_Hours__c:r.misc4Hours,Stat1__c:r.stat1Hours,Stat2__c:r.stat2Hours,In_Charge__c:r.inChargeHours,Shift_Travel_Stipend__c:r.shiftTravelPerDiemHours});case 4:if([200,204,304].includes((o=t.sent).status)){t.next=7;break}throw new Error("got error status code "+o.status);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),console.error("Error Updating Timesheet Hour: ",t.t0.message);case 12:case"end":return t.stop()}}),t,this,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetId=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+f+"/query",n="SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '"+e+"' LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+f+"/query",n="SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=o(a().mark((function t(e){var r=this;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetHoursIds(e);case 2:return t.abrupt("return",Promise.all(t.sent.map(function(){var t=o(a().mark((function t(e){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+f+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(c));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())));case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}();function c(t){return{callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c}}var u=function(){function t(t){this.axiosInstance=t}return t.prototype.fetchPractitioners=function(){var t=o(a().mark((function t(){var e;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+f+"/query",t.next=5,this.axiosInstance.get(e,{params:{q:"\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n "}});case 5:return t.abrupt("return",t.sent.data.records.map(h));case 10:throw t.prev=10,t.t0=t.catch(0),console.error("Error fetching practitioners: ",t.t0.message),t.t0;case 14:case"end":return t.stop()}}),t,this,[[0,10]])})));return function(){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var f="v57.0";exports.SFApiClient=function(){function t(t){this.instance=void 0,this.axiosInstance=e.create(),this.baseUrl=t,this.axiosInstance.defaults.baseURL=null!=t?t:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticator=new i(this.axiosInstance,this.baseUrl),this.timesheetClient=new s(this.axiosInstance),this.practitionerClient=new u(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=o(a().mark((function t(e,r){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchWorkOrders=function(){var t=o(a().mark((function t(e){var r,n;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+f+"/query",n=e?"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c",t.next=5,this.axiosInstance.get(r,{params:{q:n}}).then((function(t){return t.data.records.map((function(t){return{id:t.Id,establishmentId:t.HospitalID__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c}}))}));case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error fetching work orders: ",t.t0.message),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])})));return function(e){return t.apply(this,arguments)}}(),r.fetchRoles=function(){var t=o(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+f+"/query",{params:{q:"SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true"}}).then((function(t){return t.data.records.map((function(t){return{label:t.Label,value:t.Value}}))})));case 6:throw t.prev=6,t.t0=t.catch(0),console.error("Error fetching roles: ",t.t0.message),t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),t}(),exports.SFAuthenticator=i,exports.SFTimesheetClient=s,exports.SF_API_VERSION=f;
2
- //# sourceMappingURL=hermes.cjs.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","wrap","_context","prev","next","postToken","headers","common","sent","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_context2","FormData","refreshToken","append","Error","post","getHeaders","token","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","_context5","Promise","all","_ref2","_callee4","id","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hermes.esm.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\r\nimport FormData from 'form-data'\r\n\r\nexport class SFAuthenticator {\r\n axiosTokenInstance: AxiosInstance = axios.create()\r\n authenticatedAxiosInstance: AxiosInstance\r\n token: string | undefined = undefined\r\n private refreshToken: string | undefined = undefined\r\n\r\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\r\n this.axiosTokenInstance.defaults.baseURL =\r\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\r\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\r\n }\r\n\r\n async initializeAuth(clientId: string, clientSecret: string) {\r\n const token = await this.postToken(clientId, clientSecret)\r\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n }\r\n\r\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\r\n const tokenFormRequestBody = new FormData()\r\n if (this.refreshToken) {\r\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\r\n tokenFormRequestBody.append('grant_type', 'refresh_token')\r\n } else if (clientId && clientSecret) {\r\n tokenFormRequestBody.append('client_id', clientId)\r\n tokenFormRequestBody.append('client_secret', clientSecret)\r\n tokenFormRequestBody.append('grant_type', 'client_credentials')\r\n } else {\r\n throw new Error(\r\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\r\n )\r\n }\r\n\r\n const response = await this.axiosTokenInstance.post(\r\n '/services/oauth2/token',\r\n tokenFormRequestBody,\r\n {\r\n headers: tokenFormRequestBody.getHeaders()\r\n }\r\n )\r\n\r\n this.token = response?.data?.['access_token']\r\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\r\n return this.token\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\r\nimport { TimesheetDayEntry } from '../../models'\r\nimport { SF_API_VERSION } from '../apiClient'\r\n\r\nexport class SFTimesheetClient {\r\n private axiosInstance: AxiosInstance\r\n\r\n constructor(axiosInstance: AxiosInstance) {\r\n this.axiosInstance = axiosInstance\r\n }\r\n\r\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\r\n try {\r\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\r\n const response = await this.axiosInstance.patch(url, {\r\n Callback__c: timesheet.callbackHours,\r\n HoursEBAdjusted__c: timesheet.regularHours,\r\n Misc__c: timesheet.miscHours,\r\n OT1__c: timesheet.overtime1Hours,\r\n OT2__c: timesheet.overtime2Hours,\r\n OnCall__c: timesheet.onCallHours,\r\n Misc1__c: timesheet.misc1HoursA,\r\n Misc_1_Hours__c: timesheet.misc1HoursB,\r\n Misc_2_Hours__c: timesheet.misc2Hours,\r\n Misc_3_Hours__c: timesheet.misc3Hours,\r\n Misc_4_Hours__c: timesheet.misc4Hours,\r\n Stat1__c: timesheet.stat1Hours,\r\n Stat2__c: timesheet.stat2Hours,\r\n In_Charge__c: timesheet.inChargeHours,\r\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\r\n })\r\n\r\n if (![200, 204, 304].includes(response.status))\r\n throw new Error(`got error status code ${response.status}`)\r\n } catch (error) {\r\n console.error('Error Updating Timesheet Hour: ', error.message)\r\n }\r\n }\r\n\r\n async getTimesheetId(workorderId: string): Promise<string> {\r\n // First we find the correct timesheet id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM Timesheet__c WHERE WorkOrder__c = '${workorderId}' LIMIT 1`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records[0].Id\r\n }\r\n\r\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\r\n const timesheetId = await this.getTimesheetId(workorderId)\r\n // First we find the correct timesheet hours id\r\n const url = `/services/data/${SF_API_VERSION}/query`\r\n const query = `SELECT Id FROM TimesheetHour__c WHERE Timesheet__c = '${timesheetId}'`\r\n const {\r\n data: { records }\r\n } = await this.axiosInstance.get(url, {\r\n params: { q: query }\r\n })\r\n return records.map(({ Id }) => Id)\r\n }\r\n\r\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\r\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\r\n return Promise.all(\r\n timesheetHourIds.map(async id =>\r\n this.axiosInstance\r\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\r\n .then(res => res.data)\r\n .then(toTimesheetDayEntry)\r\n )\r\n )\r\n }\r\n}\r\n\r\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\r\n return {\r\n callbackHours: raw.Callback__c,\r\n regularHours: raw.HoursEBAdjusted__c,\r\n miscHours: raw.Misc__c,\r\n overtime1Hours: raw.OT1__c,\r\n overtime2Hours: raw.OT2__c,\r\n onCallHours: raw.OnCall__c,\r\n misc1HoursA: raw.Misc1__c,\r\n misc1HoursB: raw.Misc_1_Hours__c,\r\n misc2Hours: raw.Misc_2_Hours__c,\r\n misc3Hours: raw.Misc_3_Hours__c,\r\n misc4Hours: raw.Misc_4_Hours__c,\r\n stat1Hours: raw.Stat1__c,\r\n stat2Hours: raw.Stat2__c,\r\n inChargeHours: raw.In_Charge__c,\r\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c\r\n }\r\n}\r\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/practitioner'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c\n }\n}\n","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role, Workorder } from '../models'\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\n\n async init(sfClientId: string, sfClientSecret: string) {\n // creates authenticator and adds token to axios instance\n await this.authenticator.initializeAuth(sfClientId, sfClientSecret)\n }\n\n setInstance(instance: SFApiClient) {\n this.instance = instance\n }\n getInstance(): SFApiClient {\n return this.instance\n }\n\n async fetchWorkOrders(assignedStaffId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = assignedStaffId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c WHERE Personnel__c = '${assignedStaffId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n\n async fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map((record): Role => ({ label: record.Label, value: record.Value }))\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","token","wrap","_callee$","_context","prev","next","postToken","sent","headers","common","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_callee2$","_context2","FormData","refreshToken","append","Error","post","getHeaders","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","_yield$this$axiosInst","records","get","params","q","Id","getTimesheetHoursIds","_getTimesheetHoursIds","_callee3","timesheetId","_yield$this$axiosInst2","_callee3$","_context3","map","_ref","getTimesheetHours","_getTimesheetHours","_callee5","_this","timesheetHourIds","_callee5$","_context5","Promise","all","_ref2","_callee4","id","_callee4$","_context4","then","res","toTimesheetDayEntry","_x6","_x5","raw","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFApiClient","authenticator","timesheetClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchWorkOrders","_fetchWorkOrders","assignedStaffId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"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"}