pha-hermes 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/auth/auth.d.ts +1 -0
- package/dist/api/practitioner/practitionerClient.d.ts +1 -1
- package/dist/api/timesheet/timesheetClient.d.ts +1 -2
- package/dist/pha-hermes.cjs.development.js +151 -89
- package/dist/pha-hermes.cjs.development.js.map +1 -1
- package/dist/pha-hermes.cjs.production.min.js +1 -1
- package/dist/pha-hermes.cjs.production.min.js.map +1 -1
- package/dist/pha-hermes.esm.js +151 -89
- package/dist/pha-hermes.esm.js.map +1 -1
- package/package.json +5 -3
- package/src/api/auth/auth.ts +46 -0
- package/src/api/practitioner/practitionerClient.ts +1 -1
- package/src/api/timesheet/timesheetClient.ts +9 -14
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e,r,n,a,o,i){try{var s=t[o](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,a)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(a,o){var i=t.apply(e,r);function s(t){n(i,a,o,s,c,"next",t)}function c(t){n(i,a,o,s,c,"throw",t)}s(void 0)}))}}function o(){o=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var o=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new D(n||[]);return a(o,"_invoke",{value:k(t,r,i)}),o}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var p="suspendedStart",d="executing",_="completed",v={};function m(){}function y(){}function g(){}var w={};h(w,s,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(S([])));E&&E!==r&&n.call(E,s)&&(w=E);var I=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 b(t,e){function r(a,o,i,s){var c=l(t[a],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){r("next",t,i,s)}),(function(t){r("throw",t,i,s)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,s)}))}s(c.arg)}var o;a(this,"_invoke",{value:function(t,n){function a(){return new e((function(e,a){r(t,n,e,a)}))}return o=o?o.then(a,a):a()}})}function k(e,r,n){var a=p;return function(o,i){if(a===d)throw Error("Generator is already running");if(a===_){if("throw"===o)throw i;return{value:t,done:!0}}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var c=L(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===p)throw a=_,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=d;var u=l(e,r,n);if("normal"===u.type){if(a=n.done?_:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(a=_,n.method="throw",n.arg=u.arg)}}}function L(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=l(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function D(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function S(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,o=function r(){for(;++a<e.length;)if(n.call(e,a))return r.value=e[a],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return y.prototype=g,a(I,"constructor",{value:g,configurable:!0}),a(g,"constructor",{value:y,configurable:!0}),y.displayName=h(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,h(t,u,"GeneratorFunction")),t.prototype=Object.create(I),t},e.awrap=function(t){return{__await:t}},H(b.prototype),h(b.prototype,c,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new b(f(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},H(I),h(I,u,"Generator"),h(I,s,(function(){return this})),h(I,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=S,D.prototype={constructor:D,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function a(n,a){return s.type="throw",s.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;O(r)}return a}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:S(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var i=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=a(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent;case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=a(o().mark((function t(e,n){var a,i,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new r,!this.refreshToken){t.next=6;break}i.append("refresh_token",this.refreshToken),i.append("grant_type","refresh_token"),t.next=13;break;case 6:if(!e||!n){t.next=12;break}i.append("client_id",e),i.append("client_secret",n),i.append("grant_type","client_credentials"),t.next=13;break;case 12:throw new Error("Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided");case 13:return t.next=15,this.axiosTokenInstance.post("/services/oauth2/token",i,{headers:i.getHeaders()});case 15:if(this.token=null==(s=t.sent)||null==(a=s.data)?void 0:a.access_token,this.token){t.next=19;break}throw new Error("Authentication failed, could not get the access token");case 19:return t.abrupt("return",this.token);case 20:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),t}(),s=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=a(o().mark((function t(e,r){var n,a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+l+"/sobjects/TimeSheetHour__c/"+e,t.next=4,this.axiosInstance.patch(n,{Date__c:r.date,Callback__c:r.callbackHours,HoursEBAdjusted__c:r.regularHours,Misc__c:r.miscHours,OT1__c:r.overtime1Hours,OT2__c:r.overtime2Hours,OnCall__c:r.onCallHours,Misc1__c:r.misc1HoursA,Misc_1_Hours__c:r.misc1HoursB,Misc_2_Hours__c:r.misc2Hours,Misc_3_Hours__c:r.misc3Hours,Misc_4_Hours__c:r.misc4Hours,Stat1__c:r.stat1Hours,Stat2__c:r.stat2Hours,In_Charge__c:r.inChargeHours,Shift_Travel_Stipend__c:r.shiftTravelPerDiemHours});case 4:if([200,204,304].includes((a=t.sent).status)){t.next=7;break}throw new Error("got error status code "+a.status);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),console.error("Error Updating Timesheet Hour: ",t.t0.message);case 12:case"end":return t.stop()}}),t,this,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}(),e.getTimesheetId=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+l+"/query",n="SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'\n LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetsForPractitioner=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+l+"/query",n="SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '"+e+"')",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records);case 6:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetsIdAndDateForPractitioner=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+l+"/query",n="SELECT Id, LastModifiedDate\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '"+e+"')",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records.map((function(t){return{Id:t.Id,LastModifiedDate:t.LastModifiedDate}})));case 6:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+l+"/query",n="SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=a(o().mark((function t(e){var r=this;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetHoursIds(e);case 2:return t.abrupt("return",Promise.all(t.sent.map(function(){var t=a(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+l+"/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{id:t.Id,date:t.Date__c,callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c,lastModified:t.LastModifiedDate}}var u=function(){function t(t){this.axiosInstance=t}return t.prototype.fetchPractitioners=function(){var t=a(o().mark((function t(){var e;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+l+"/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=function(){function t(t){this.axiosInstance=t}return t.prototype.getWorkordersForPractitioner=function(){var t=a(o().mark((function t(e){var r,n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+l+"/query",n=e?"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c",t.next=5,this.axiosInstance.get(r,{params:{q:n}}).then((function(t){return t.data.records.map((function(t){return{id:t.Id,establishmentId:t.HospitalID__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c,practitionerId:t.Personnel__c,startDate:new Date(t.startdate__c),endDate:new Date(t.EndDate__c),createdAt:new Date(t.CreatedDate),updatedAt:new Date(t.LastModifiedDate)}}))}));case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error fetching work orders: ",t.t0.message),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])})));return function(e){return t.apply(this,arguments)}}(),t}(),l="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.workorderClient=new f(this.axiosInstance),this.practitionerClient=new u(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=a(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.authenticator.initializeAuth(e,r);case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.setInstance=function(t){this.instance=t},r.getInstance=function(){return this.instance},r.fetchRoles=function(){var t=a(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+l+"/query",{params:{q:"SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true"}}).then((function(t){return t.data.records.map((function(t){return{label:t.Label,value:t.Value}}))})));case 6:throw t.prev=6,t.t0=t.catch(0),console.error("Error fetching roles: ",t.t0.message),t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),t}(),exports.SFAuthenticator=i,exports.SFPractitionerClient=u,exports.SFTimesheetClient=s;
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("axios")),r=t(require("form-data"));function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(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 a(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var i=t.apply(e,r);function s(t){o(i,n,a,s,c,"next",t)}function c(t){o(i,n,a,s,c,"throw",t)}s(void 0)}))}}function i(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(){s=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=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 a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new S(n||[]);return o(a,"_invoke",{value:H(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",d="executing",_="completed",v={};function m(){}function y(){}function g(){}var w={};h(w,i,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(O([])));b&&b!==r&&n.call(b,i)&&(w=b);var E=g.prototype=m.prototype=Object.create(w);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function I(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 H(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===_){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=_,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?_:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=_,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 P(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 O(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var 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}},k(I.prototype),h(I.prototype,c,(function(){return this})),e.AsyncIterator=I,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new I(f(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},k(E),h(E,u,"Generator"),h(E,i,(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=O,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(P),!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),P(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;P(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:O(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var c=function(){function t(t,r){this.axiosTokenInstance=e.create(),this.token=void 0,this.refreshToken=void 0,this.tokenRefreshPromise=null,this.axiosTokenInstance.defaults.baseURL=null!=r?r:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticatedAxiosInstance=t}var n=t.prototype;return n.initializeAuth=function(){var t=a(s().mark((function t(e,r){var n=this;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.postToken(e,r);case 2:this.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+t.sent,this.authenticatedAxiosInstance.interceptors.response.use((function(t){return t}),function(){var t=a(s().mark((function t(o){var a,i,c;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((i=o.config)._retryCount=i._retryCount||0,!(401===(null==(a=o.response)?void 0:a.status)&&i._retryCount<3)){t.next=22;break}return i._retryCount++,t.prev=4,n.tokenRefreshPromise||(n.tokenRefreshPromise=n.postToken(e,r)),t.next=8,n.tokenRefreshPromise;case 8:return c=t.sent,n.tokenRefreshPromise=null,n.authenticatedAxiosInstance.defaults.headers.common.Authorization="Bearer "+c,i.headers.Authorization="Bearer "+c,i.timeout=5e3,t.next=15,Promise.race([n.authenticatedAxiosInstance(i),new Promise((function(t,e){return setTimeout((function(){return e(new Error("Retry request timeout"))}),i.timeout)}))]);case 15:return t.abrupt("return",t.sent);case 18:return t.prev=18,t.t0=t.catch(4),n.tokenRefreshPromise=null,t.abrupt("return",Promise.reject(t.t0));case 22:return t.abrupt("return",Promise.reject(o));case 23:case"end":return t.stop()}}),t,null,[[4,18]])})));return function(e){return t.apply(this,arguments)}}());case 5:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),n.postToken=function(){var t=a(s().mark((function t(e,n){var o,a,i;return s().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==(i=t.sent)||null==(o=i.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}(),u=function(){function t(t){this.axiosInstance=t}var e=t.prototype;return e.updateTimesheetHour=function(){var t=a(s().mark((function t(e,r){var n,o;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n="/services/data/"+d+"/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=a(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+d+"/query",n="SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '"+e+"'\n LIMIT 1",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:return t.abrupt("return",t.sent.data.records[0].Id);case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetsForPractitioner=function(){var t=a(s().mark((function t(e){var r,n,o,a,c,u;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="/services/data/"+d+"/query",n="SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '"+e+"')",t.next=4,this.axiosInstance.get(r,{params:{q:n}});case 4:for(o=[],a=i(t.sent.data.records);!(c=a()).done;)o.push({workorderId:(u=c.value).WorkOrder__c,id:u.Id,updatedAt:u.LastModifiedDate});return t.abrupt("return",o);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHoursIds=function(){var t=a(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetId(e);case 2:return r="/services/data/"+d+"/query",n="SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '"+t.sent+"'",t.next=7,this.axiosInstance.get(r,{params:{q:n}});case 7:return t.abrupt("return",t.sent.data.records.map((function(t){return t.Id})));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getTimesheetHours=function(){var t=a(s().mark((function t(e){var r=this;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getTimesheetHoursIds(e);case 2:return t.abrupt("return",Promise.all(t.sent.map(function(){var t=a(s().mark((function t(e){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",r.axiosInstance.get("/services/data/"+d+"/sobjects/TimeSheetHour__c/"+e).then((function(t){return t.data})).then(h));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())));case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t}();function h(t){return{id:t.Id,date:t.Date__c,callbackHours:t.Callback__c,regularHours:t.HoursEBAdjusted__c,miscHours:t.Misc__c,overtime1Hours:t.OT1__c,overtime2Hours:t.OT2__c,onCallHours:t.OnCall__c,misc1HoursA:t.Misc1__c,misc1HoursB:t.Misc_1_Hours__c,misc2Hours:t.Misc_2_Hours__c,misc3Hours:t.Misc_3_Hours__c,misc4Hours:t.Misc_4_Hours__c,stat1Hours:t.Stat1__c,stat2Hours:t.Stat2__c,inChargeHours:t.In_Charge__c,shiftTravelPerDiemHours:t.Shift_Travel_Stipend__c,lastModified:t.LastModifiedDate}}var f=function(){function t(t){this.axiosInstance=t}return t.prototype.fetchPractitioners=function(){var t=a(s().mark((function t(){var e;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e="/services/data/"+d+"/query",t.next=5,this.axiosInstance.get(e,{params:{q:"\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n "}});case 5:return t.abrupt("return",t.sent.data.records.map(l));case 10:throw t.prev=10,t.t0=t.catch(0),console.error("Error fetching practitioners: ",t.t0.message),t.t0;case 14:case"end":return t.stop()}}),t,this,[[0,10]])})));return function(){return t.apply(this,arguments)}}(),t}();function l(t){return{id:t.Id,firstName:t.FirstName__c,lastName:t.LastName__c,email:t.Email__c,staffId:t.StaffID__c}}var p=function(){function t(t){this.axiosInstance=t}return t.prototype.getWorkordersForPractitioner=function(){var t=a(s().mark((function t(e){var r,n;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r="/services/data/"+d+"/query",n=e?"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '"+e+"'":"SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c",t.next=5,this.axiosInstance.get(r,{params:{q:n}}).then((function(t){return t.data.records.map((function(t){return{id:t.Id,establishmentId:t.HospitalID__c,establishmentName:t.HospitalName__c,role:t.ProfessionalDesignation__c,practitionerId:t.Personnel__c,startDate:new Date(t.startdate__c),endDate:new Date(t.EndDate__c),createdAt:new Date(t.CreatedDate),updatedAt:new Date(t.LastModifiedDate)}}))}));case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error fetching work orders: ",t.t0.message),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])})));return function(e){return t.apply(this,arguments)}}(),t}(),d="v57.0";exports.SFApiClient=function(){function t(t){this.instance=void 0,this.axiosInstance=e.create(),this.baseUrl=t,this.axiosInstance.defaults.baseURL=null!=t?t:"https://do0000000d247eaa--phealth.sandbox.my.salesforce.com",this.authenticator=new c(this.axiosInstance,this.baseUrl),this.timesheetClient=new u(this.axiosInstance),this.workorderClient=new p(this.axiosInstance),this.practitionerClient=new f(this.axiosInstance)}var r=t.prototype;return r.init=function(){var t=a(s().mark((function t(e,r){return s().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.fetchRoles=function(){var t=a(s().mark((function t(){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.axiosInstance.get("/services/data/"+d+"/query",{params:{q:"SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c' AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' AND isActive = true"}}).then((function(t){return t.data.records.map((function(t){return{label:t.Label,value:t.Value}}))})));case 6:throw t.prev=6,t.t0=t.catch(0),console.error("Error fetching roles: ",t.t0.message),t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),t}(),exports.SFAuthenticator=c,exports.SFPractitionerClient=f,exports.SFTimesheetClient=u;
|
|
2
2
|
//# sourceMappingURL=pha-hermes.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pha-hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/workorder/workorderClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\nimport FormData from 'form-data'\n\nexport class SFAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private refreshToken: string | undefined = undefined\n\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\n this.axiosTokenInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(clientId: string, clientSecret: string) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\n )\n\n this.token = response?.data?.['access_token']\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\n return this.token\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { TimesheetDayEntry } from '../../models'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFTimesheetClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\n const response = await this.axiosInstance.patch(url, {\n Date__c: timesheet.date,\n Callback__c: timesheet.callbackHours,\n HoursEBAdjusted__c: timesheet.regularHours,\n Misc__c: timesheet.miscHours,\n OT1__c: timesheet.overtime1Hours,\n OT2__c: timesheet.overtime2Hours,\n OnCall__c: timesheet.onCallHours,\n Misc1__c: timesheet.misc1HoursA,\n Misc_1_Hours__c: timesheet.misc1HoursB,\n Misc_2_Hours__c: timesheet.misc2Hours,\n Misc_3_Hours__c: timesheet.misc3Hours,\n Misc_4_Hours__c: timesheet.misc4Hours,\n Stat1__c: timesheet.stat1Hours,\n Stat2__c: timesheet.stat2Hours,\n In_Charge__c: timesheet.inChargeHours,\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\n })\n\n if (![200, 204, 304].includes(response.status))\n throw new Error(`got error status code ${response.status}`)\n } catch (error) {\n console.error('Error Updating Timesheet Hour: ', error.message)\n }\n }\n\n async getTimesheetId(workorderId: string): Promise<string> {\n // First we find the correct timesheet id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'\n LIMIT 1`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records[0].Id\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n return data.data.records\n }\n\n async getTimesheetsIdAndDateForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT Id, LastModifiedDate\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n return data.data.records.map(({ Id, LastModifiedDate }) => ({ Id, LastModifiedDate }))\n }\n\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetId = await this.getTimesheetId(workorderId)\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(({ Id }) => Id)\n }\n\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\n return Promise.all(\n timesheetHourIds.map(async id =>\n this.axiosInstance\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\n .then(res => res.data)\n .then(toTimesheetDayEntry)\n )\n )\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models/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 { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\nimport { Workorder } from '../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n\n async getWorkordersForPractitioner(practitionerId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = practitionerId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${practitionerId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate)\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\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 fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clientId","clientSecret","wrap","_context","prev","next","postToken","headers","common","sent","stop","_x","_x2","apply","arguments","_postToken","_callee2","_response$data","tokenFormRequestBody","response","_context2","FormData","refreshToken","append","Error","post","getHeaders","token","data","abrupt","_x3","_x4","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","status","t0","console","error","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","_callee3","personnelID","_context3","getTimesheetsIdAndDateForPractitioner","_getTimesheetsIdAndDateForPractitioner","_callee4","_context4","map","_ref","LastModifiedDate","_x5","getTimesheetHoursIds","_getTimesheetHoursIds","_callee5","_context5","_ref2","_x6","getTimesheetHours","_getTimesheetHours","_callee7","_this","_context7","Promise","all","_ref3","_callee6","id","_context6","then","res","toTimesheetDayEntry","_x8","_x7","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startDate","Date","startdate__c","endDate","EndDate__c","createdAt","CreatedDate","updatedAt","SFApiClient","authenticator","timesheetClient","workorderClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchRoles","_fetchRoles","label","Label","value","Value"],"mappings":"81NAGaA,aAMT,SAAAA,EAAYC,EAA2CC,GALvDC,wBAAoCC,EAAMC,SAE1CF,gBAA4BG,EACpBH,uBAAmCG,EAGvCH,KAAKI,mBAAmBC,SAASC,cAC7BP,EAAAA,EAAW,8DACfC,KAAKF,2BAA6BA,EACrC,IAAAS,EAAAV,EAAAW,UAOc,OAPdD,EAEKE,0BAAc,IAAAC,EAAAC,EAAAC,IAAAC,MAApB,SAAAC,EAAqBC,EAAkBC,GAAoB,OAAAJ,IAAAK,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAE,OACnCpB,KAAKqB,UAAUN,EAAUC,GAAa,OAC1DhB,KAAKF,2BAA2BO,SAASiB,QAAQC,OAAsB,wBAD5DL,EAAAM,KACiF,OAAA,UAAA,OAAAN,EAAAO,UAAAX,YAF5E,OAGnB,SAHmBY,EAAAC,GAAA,OAAAjB,EAAAkB,WAAAC,eAAAtB,EAKdc,qBAAS,IAAAS,EAAAnB,EAAAC,IAAAC,MAAf,SAAAkB,EAAgBhB,EAAmBC,GAAqB,IAAAgB,EAAAC,EAAAC,EAAA,OAAAtB,IAAAK,eAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACT,GAArCa,EAAuB,IAAIG,GAC7BpC,KAAKqC,cAAYF,EAAAf,OAAA,MACjBa,EAAqBK,OAAO,gBAAiBtC,KAAKqC,cAClDJ,EAAqBK,OAAO,aAAc,iBAAgBH,EAAAf,QAAA,MAAA,OAAA,IACnDL,IAAYC,GAAYmB,EAAAf,QAAA,MAC/Ba,EAAqBK,OAAO,YAAavB,GACzCkB,EAAqBK,OAAO,gBAAiBtB,GAC7CiB,EAAqBK,OAAO,aAAc,sBAAqBH,EAAAf,QAAA,MAAA,QAAA,MAEzD,IAAImB,MACN,oGACH,QAAA,OAAAJ,EAAAf,QAGkBpB,KAAKI,mBAAmBoC,KAC3C,yBACAP,EACA,CACIX,QAASW,EAAqBQ,eAErC,QAE4C,GAA7CzC,KAAK0C,aARCR,EAAQC,EAAAX,cAQOQ,EAARE,EAAUS,aAAVX,EAA+B,aACvChC,KAAK0C,OAAKP,EAAAf,QAAA,MAAA,MAAQ,IAAImB,MAAM,yDAAwD,QAAA,OAAAJ,EAAAS,gBAClF5C,KAAK0C,OAAK,QAAA,UAAA,OAAAP,EAAAV,UAAAM,YAzBN,OA0Bd,SA1Bcc,EAAAC,GAAA,OAAAhB,EAAAF,WAAAC,eAAAhC,KChBNkD,aAGT,SAAAA,EAAYC,GACRhD,KAAKgD,cAAgBA,EACxB,IAAAzC,EAAAwC,EAAAvC,UA0FsB,OA1FtBD,EAEK0C,+BAAmB,IAAAC,EAAAvC,EAAAC,IAAAC,MAAzB,SAAAC,EAA0BqC,EAAyBC,GAA4B,IAAAC,EAAAnB,EAAA,OAAAtB,IAAAK,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEkB,OAFlBF,EAAAC,OAEjEkC,oBAAwBC,gCAA4CH,EAAejC,EAAAE,OAClEpB,KAAKgD,cAAcO,MAAMF,EAAK,CACjDG,QAASJ,EAAUK,KACnBC,YAAaN,EAAUO,cACvBC,mBAAoBR,EAAUS,aAC9BC,QAASV,EAAUW,UACnBC,OAAQZ,EAAUa,eAClBC,OAAQd,EAAUe,eAClBC,UAAWhB,EAAUiB,YACrBC,SAAUlB,EAAUmB,YACpBC,gBAAiBpB,EAAUqB,YAC3BC,gBAAiBtB,EAAUuB,WAC3BC,gBAAiBxB,EAAUyB,WAC3BC,gBAAiB1B,EAAU2B,WAC3BC,SAAU5B,EAAU6B,WACpBC,SAAU9B,EAAU+B,WACpBC,aAAchC,EAAUiC,cACxBC,wBAAyBlC,EAAUmC,0BACrC,OAjBY,GAmBT,CAAC,IAAK,IAAK,KAAKC,UAnBftD,EAAQhB,EAAAM,MAmByBiE,SAAOvE,EAAAE,OAAA,MAAA,MACpC,IAAImB,+BAA+BL,EAASuD,QAAS,OAAAvE,EAAAE,QAAA,MAAA,OAAAF,EAAAC,OAAAD,EAAAwE,GAAAxE,WAE/DyE,QAAQC,MAAM,kCAAmC1E,EAAAwE,GAAMG,SAAQ,QAAA,UAAA,OAAA3E,EAAAO,UAAAX,oBAzB9C,OA2BxB,SA3BwBY,EAAAC,GAAA,OAAAuB,EAAAtB,WAAAC,eAAAtB,EA6BnBuF,0BAAc,IAAAC,EAAApF,EAAAC,IAAAC,MAApB,SAAAkB,EAAqBiE,GAAmB,IAAA3C,EAAA4C,EAAA,OAAArF,IAAAK,eAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAKc,OAH5CiC,oBAAwBC,WACxB2C,uGAEiCD,sCAAW7D,EAAAf,OAIxCpB,KAAKgD,cAAckD,IAAI7C,EAAK,CAClC8C,OAAQ,CAAEC,EAAGH,KACf,OAHiB,OAAA9D,EAAAS,gBAGjBT,EAAAX,KAHEmB,KAAQ0D,QAIG,GAAGC,IAAE,OAAA,UAAA,OAAAnE,EAAAV,UAAAM,YAZJ,OAanB,SAbmBc,GAAA,OAAAkD,EAAAnE,WAAAC,eAAAtB,EAedgG,wCAA4B,IAAAC,EAAA7F,EAAAC,IAAAC,MAAlC,SAAA4F,EAAmCC,GAAmB,IAAArD,EAAA4C,EAAA,OAAArF,IAAAK,eAAA0F,GAAA,cAAAA,EAAAxF,KAAAwF,EAAAvF,MAAA,OAOuB,OANnEiC,oBAAwBC,WAExB2C,oRAIwDS,OAAWC,EAAAvF,OAEtDpB,KAAKgD,cAAckD,IAAI7C,EAAK,CAAE8C,OAAQ,CAAEC,EAAGH,KAAU,OAA9D,OAAAU,EAAA/D,gBAAA+D,EAAAnF,KAEEmB,KAAK0D,SAAO,OAAA,UAAA,OAAAM,EAAAlF,UAAAgF,YAXM,OAYjC,SAZiC3D,GAAA,OAAA0D,EAAA5E,WAAAC,eAAAtB,EAc5BqG,iDAAqC,IAAAC,EAAAlG,EAAAC,IAAAC,MAA3C,SAAAiG,EAA4CJ,GAAmB,IAAArD,EAAA4C,EAAA,OAAArF,IAAAK,eAAA8F,GAAA,cAAAA,EAAA5F,KAAA4F,EAAA3F,MAAA,OAOc,OANnEiC,oBAAwBC,WAExB2C,0QAIwDS,OAAWK,EAAA3F,OAEtDpB,KAAKgD,cAAckD,IAAI7C,EAAK,CAAE8C,OAAQ,CAAEC,EAAGH,KAAU,OAA9D,OAAAc,EAAAnE,gBAAAmE,EAAAvF,KAEEmB,KAAK0D,QAAQW,KAAI,SAAAC,GAAuB,MAAQ,CAAEX,GAA5BW,EAAFX,GAAkCY,iBAAdD,EAAhBC,sBAAkD,OAAA,UAAA,OAAAH,EAAAtF,UAAAqF,YAX/C,OAY1C,SAZ0CK,GAAA,OAAAN,EAAAjF,WAAAC,eAAAtB,EAerC6G,gCAAoB,IAAAC,EAAA1G,EAAAC,IAAAC,MAA1B,SAAAyG,EAA2BtB,GAAmB,IAAA3C,EAAA4C,EAAA,OAAArF,IAAAK,eAAAsG,GAAA,cAAAA,EAAApG,KAAAoG,EAAAnG,MAAA,OAAA,OAAAmG,EAAAnG,OAChBpB,KAAK8F,eAAeE,GAAY,OAKR,OAH5C3C,oBAAwBC,WACxB2C,2GAHWsB,EAAA/F,SAKiC+F,EAAAnG,OAGxCpB,KAAKgD,cAAckD,IAAI7C,EAAK,CAClC8C,OAAQ,CAAEC,EAAGH,KACf,OAHiB,OAAAsB,EAAA3E,gBAGjB2E,EAAA/F,KAHEmB,KAAQ0D,QAIGW,KAAI,SAAAQ,GAAK,OAAAA,EAAFlB,OAAY,QAAA,UAAA,OAAAiB,EAAA9F,UAAA6F,YAZZ,OAazB,SAbyBG,GAAA,OAAAJ,EAAAzF,WAAAC,eAAAtB,EAepBmH,6BAAiB,IAAAC,EAAAhH,EAAAC,IAAAC,MAAvB,SAAA+G,EAAwB5B,GAAmB,IAAA6B,OAAA,OAAAjH,IAAAK,eAAA6G,GAAA,cAAAA,EAAA3G,KAAA2G,EAAA1G,MAAA,OAAA,OAAA0G,EAAA1G,OACRpB,KAAKoH,qBAAqBpB,GAAY,OAA/C,OAAA8B,EAAAlF,gBACfmF,QAAQC,IADOF,EAAAtG,KAEDwF,eAAG,IAAAiB,EAAAtH,EAAAC,IAAAC,MAAC,SAAAqH,EAAMC,GAAE,OAAAvH,IAAAK,eAAAmH,GAAA,cAAAA,EAAAjH,KAAAiH,EAAAhH,MAAA,OAAA,OAAAgH,EAAAxF,gBACzBiF,EAAK7E,cACAkD,sBAAsB5C,gCAA4C6E,GAClEE,MAAK,SAAAC,GAAG,OAAIA,EAAI3F,QAChB0F,KAAKE,IAAoB,OAAA,UAAA,OAAAH,EAAA3G,UAAAyG,OAAA,gBAAAM,GAAA,OAAAP,EAAArG,WAAAC,kBAErC,OAAA,UAAA,OAAAiG,EAAArG,UAAAmG,YATkB,OAUtB,SAVsBa,GAAA,OAAAd,EAAA/F,WAAAC,eAAAkB,KAa3B,SAASwF,EAAoBG,GACzB,MAAO,CACHP,GAAIO,EAAIpC,GACR7C,KAAMiF,EAAIlF,QACVG,cAAe+E,EAAIhF,YACnBG,aAAc6E,EAAI9E,mBAClBG,UAAW2E,EAAI5E,QACfG,eAAgByE,EAAI1E,OACpBG,eAAgBuE,EAAIxE,OACpBG,YAAaqE,EAAItE,UACjBG,YAAamE,EAAIpE,SACjBG,YAAaiE,EAAIlE,gBACjBG,WAAY+D,EAAIhE,gBAChBG,WAAY6D,EAAI9D,gBAChBG,WAAY2D,EAAI5D,gBAChBG,WAAYyD,EAAI1D,SAChBG,WAAYuD,EAAIxD,SAChBG,cAAeqD,EAAItD,aACnBG,wBAAyBmD,EAAIpD,wBAC7BqD,aAAcD,EAAIxB,sBC/Hb0B,aAGT,SAAAA,EAAY5F,GACRhD,KAAKgD,cAAgBA,EAGD,OAFvB4F,EAAApI,UAEKqI,8BAAkB,IAAAC,EAAAnI,EAAAC,IAAAC,MAAxB,SAAAC,IAAA,IAAAuC,EAAA,OAAAzC,IAAAK,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGmB,OAHnBF,EAAAC,OAEckC,oBAAwBC,WACnBpC,EAAAE,OAODpB,KAAKgD,cAAckD,IAAI7C,EAAK,CAClC8C,OAAQ,CAAEC,iLACZ,OAHiB,OAAAlF,EAAA0B,gBAGjB1B,EAAAM,KAHEmB,KAAQ0D,QAKGW,IAAI+B,IAAe,QAE4B,MAF5B7H,EAAAC,QAAAD,EAAAwE,GAAAxE,WAElCyE,QAAQC,MAAM,iCAAkC1E,EAAAwE,GAAMG,SAAQ3E,EAAAwE,GAAA,QAAA,UAAA,OAAAxE,EAAAO,UAAAX,qBAhB9C,OAmBvB,WAnBuB,OAAAgI,EAAAlH,WAAAC,eAAA+G,KAsB5B,SAASG,EAAeL,GACpB,MAAO,CACHP,GAAIO,EAAIpC,GACR0C,UAAWN,EAAIO,aACfC,SAAUR,EAAIS,YACdC,MAAOV,EAAIW,SACXC,QAASZ,EAAIa,gBCnCRC,aAGT,SAAAA,EAAYxG,GACRhD,KAAKgD,cAAgBA,EAIS,OAHjCwG,EAAAhJ,UAGKiJ,wCAA4B,IAAAC,EAAA/I,EAAAC,IAAAC,MAAlC,SAAAC,EAAmC6I,GAAuB,IAAAtG,EAAA4C,EAAA,OAAArF,IAAAK,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKoH,OALpHF,EAAAC,OAE5CkC,oBAAwBC,WACxB2C,EAAQ0D,0LACgLA,uKACxBzI,EAAAE,OACzJpB,KAAKgD,cACbkD,IAAI7C,EAAK,CACN8C,OAAQ,CAAEC,EAAGH,KAEhBoC,MAAK,SAAApB,GAAkB,OAAAA,EAAftE,KAAQ0D,QACLW,KACJ,SAAC4C,GAAM,MAAiB,CACpBzB,GAAIyB,EAAOtD,GACXuD,gBAAiBD,EAAOE,cACxBC,kBAAmBH,EAAOI,gBAC1BC,KAAML,EAAOM,2BACbP,eAAgBC,EAAOO,aACvBC,UAAW,IAAIC,KAAKT,EAAOU,cAC3BC,QAAS,IAAIF,KAAKT,EAAOY,YACzBC,UAAW,IAAIJ,KAAKT,EAAOc,aAC3BC,UAAW,IAAIN,KAAKT,EAAO1C,yBAGtC,OAAA,OAAAhG,EAAA0B,gBAAA1B,EAAAM,MAAA,OAEuD,MAFvDN,EAAAC,OAAAD,EAAAwE,GAAAxE,WAELyE,QAAQC,MAAM,+BAAgC1E,EAAAwE,GAAMG,SAAQ3E,EAAAwE,GAAA,QAAA,UAAA,OAAAxE,EAAAO,UAAAX,oBA1BlC,OA6BjC,SA7BiCY,GAAA,OAAAgI,EAAA9H,WAAAC,eAAA2H,KCLzBlG,EAAyB,uCAWlC,SAAAsH,EAAY7K,GARJC,mBAAoCG,EACpCH,mBAA+BC,EAAMC,SAQzCF,KAAKD,QAAUA,EACfC,KAAKgD,cAAc3C,SAASC,cACxBP,EAAAA,EAAW,8DACfC,KAAK6K,cAAgB,IAAIhL,EAAgBG,KAAKgD,cAAehD,KAAKD,SAClEC,KAAK8K,gBAAkB,IAAI/H,EAAkB/C,KAAKgD,eAClDhD,KAAK+K,gBAAkB,IAAIvB,EAAkBxJ,KAAKgD,eAClDhD,KAAKgL,mBAAqB,IAAIpC,EAAqB5I,KAAKgD,eAC3D,IAAAzC,EAAAqK,EAAApK,UAce,OAdfD,EAEK0K,gBAAI,IAAAC,EAAAvK,EAAAC,IAAAC,MAAV,SAAAC,EAAWqK,EAAoBC,GAAsB,OAAAxK,IAAAK,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAE,OAE3CpB,KAAK6K,cAAcpK,eAAe0K,EAAYC,GAAe,OAAA,UAAA,OAAAlK,EAAAO,UAAAX,YAF7D,OAGT,SAHSY,EAAAC,GAAA,OAAAuJ,EAAAtJ,WAAAC,eAAAtB,EAKV8K,YAAA,SAAYC,GACRtL,KAAKsL,SAAWA,GACnB/K,EACDgL,YAAA,WACI,OAAOvL,KAAKsL,UACf/K,EAEKiL,sBAAU,IAAAC,EAAA9K,EAAAC,IAAAC,MAAhB,SAAAkB,IAAA,OAAAnB,IAAAK,eAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAGmB,OAHnBe,EAAAhB,OAGmBgB,EAAAS,gBAIJ5C,KAAKgD,cACPkD,sBANyB5C,WAMhB,CACN6C,OAAQ,CAAEC,gQAEbiC,MAAK,SAAApB,GAAkB,OAAAA,EAAftE,KAAQ0D,QACLW,KACJ,SAAC4C,GAAM,MAAY,CACf8B,MAAO9B,EAAO+B,MACdC,MAAOhC,EAAOiC,cAGzB,OAEiD,MAFjD1J,EAAAhB,OAAAgB,EAAAuD,GAAAvD,WAELwD,QAAQC,MAAM,yBAA0BzD,EAAAuD,GAAMG,SAAQ1D,EAAAuD,GAAA,QAAA,UAAA,OAAAvD,EAAAV,UAAAM,oBApB9C,OAuBf,WAvBe,OAAA0J,EAAA7J,WAAAC,eAAA+I"}
|
|
1
|
+
{"version":3,"file":"pha-hermes.cjs.production.min.js","sources":["../src/api/auth/auth.ts","../src/api/timesheet/timesheetClient.ts","../src/api/practitioner/practitionerClient.ts","../src/api/workorder/workorderClient.ts","../src/api/apiClient.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios'\nimport FormData from 'form-data'\n\nexport class SFAuthenticator {\n axiosTokenInstance: AxiosInstance = axios.create()\n authenticatedAxiosInstance: AxiosInstance\n token: string | undefined = undefined\n private refreshToken: string | undefined = undefined\n private tokenRefreshPromise: Promise<string> | null = null\n\n constructor(authenticatedAxiosInstance: AxiosInstance, baseUrl?: string) {\n this.axiosTokenInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticatedAxiosInstance = authenticatedAxiosInstance\n }\n\n async initializeAuth(clientId: string, clientSecret: string) {\n const token = await this.postToken(clientId, clientSecret)\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`\n\n this.authenticatedAxiosInstance.interceptors.response.use(\n response => response,\n async error => {\n const originalRequest = error.config\n originalRequest._retryCount = originalRequest._retryCount || 0\n\n // If the error is 401 and we haven't exceeded max retries\n if (error.response?.status === 401 && originalRequest._retryCount < 3) {\n originalRequest._retryCount++\n\n try {\n // Use existing token refresh if one is in progress\n if (!this.tokenRefreshPromise) {\n this.tokenRefreshPromise = this.postToken(clientId, clientSecret)\n }\n\n const newToken = await this.tokenRefreshPromise\n // Clear the refresh promise after it completes\n this.tokenRefreshPromise = null\n\n this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${newToken}`\n originalRequest.headers['Authorization'] = `Bearer ${newToken}`\n\n originalRequest.timeout = 5000\n\n return await Promise.race([\n this.authenticatedAxiosInstance(originalRequest),\n new Promise((_, reject) =>\n setTimeout(\n () => reject(new Error('Retry request timeout')),\n originalRequest.timeout\n )\n )\n ])\n } catch (refreshError) {\n // Clear the refresh promise if it fails\n this.tokenRefreshPromise = null\n return Promise.reject(refreshError)\n }\n }\n return Promise.reject(error)\n }\n )\n }\n\n async postToken(clientId?: string, clientSecret?: string): Promise<string> {\n const tokenFormRequestBody = new FormData()\n if (this.refreshToken) {\n tokenFormRequestBody.append('refresh_token', this.refreshToken)\n tokenFormRequestBody.append('grant_type', 'refresh_token')\n } else if (clientId && clientSecret) {\n tokenFormRequestBody.append('client_id', clientId)\n tokenFormRequestBody.append('client_secret', clientSecret)\n tokenFormRequestBody.append('grant_type', 'client_credentials')\n } else {\n throw new Error(\n 'Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided'\n )\n }\n\n const response = await this.axiosTokenInstance.post(\n '/services/oauth2/token',\n tokenFormRequestBody,\n {\n headers: tokenFormRequestBody.getHeaders()\n }\n )\n\n this.token = response?.data?.['access_token']\n if (!this.token) throw new Error('Authentication failed, could not get the access token')\n return this.token\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { TimesheetDayEntry } from '../../models'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFTimesheetClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async updateTimesheetHour(timesheetHourId: string, timesheet: TimesheetDayEntry) {\n try {\n const url = `/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${timesheetHourId}`\n const response = await this.axiosInstance.patch(url, {\n Date__c: timesheet.date,\n Callback__c: timesheet.callbackHours,\n HoursEBAdjusted__c: timesheet.regularHours,\n Misc__c: timesheet.miscHours,\n OT1__c: timesheet.overtime1Hours,\n OT2__c: timesheet.overtime2Hours,\n OnCall__c: timesheet.onCallHours,\n Misc1__c: timesheet.misc1HoursA,\n Misc_1_Hours__c: timesheet.misc1HoursB,\n Misc_2_Hours__c: timesheet.misc2Hours,\n Misc_3_Hours__c: timesheet.misc3Hours,\n Misc_4_Hours__c: timesheet.misc4Hours,\n Stat1__c: timesheet.stat1Hours,\n Stat2__c: timesheet.stat2Hours,\n In_Charge__c: timesheet.inChargeHours,\n Shift_Travel_Stipend__c: timesheet.shiftTravelPerDiemHours\n })\n\n if (![200, 204, 304].includes(response.status))\n throw new Error(`got error status code ${response.status}`)\n } catch (error) {\n console.error('Error Updating Timesheet Hour: ', error.message)\n }\n }\n\n async getTimesheetId(workorderId: string): Promise<string> {\n // First we find the correct timesheet id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM Timesheet__c\n WHERE WorkOrder__c = '${workorderId}'\n LIMIT 1`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records[0].Id\n }\n\n async getTimesheetsForPractitioner(personnelID: string) {\n const url = `/services/data/${SF_API_VERSION}/query`\n\n const query = `SELECT FIELDS(STANDARD), WorkOrder__c\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '${personnelID}')`\n\n const data = await this.axiosInstance.get(url, { params: { q: query } })\n\n let timesheets = []\n\n for (const timesheet of data.data.records) {\n timesheets.push({\n workorderId: timesheet.WorkOrder__c,\n id: timesheet.Id,\n updatedAt: timesheet.LastModifiedDate\n })\n }\n\n return timesheets\n }\n\n async getTimesheetHoursIds(workorderId: string): Promise<string[]> {\n const timesheetId = await this.getTimesheetId(workorderId)\n // First we find the correct timesheet hours id\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '${timesheetId}'`\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n return records.map(({ Id }) => Id)\n }\n\n async getTimesheetHours(workorderId: string): Promise<TimesheetDayEntry[]> {\n const timesheetHourIds = await this.getTimesheetHoursIds(workorderId)\n return Promise.all(\n timesheetHourIds.map(async id =>\n this.axiosInstance\n .get(`/services/data/${SF_API_VERSION}/sobjects/TimeSheetHour__c/${id}`)\n .then(res => res.data)\n .then(toTimesheetDayEntry)\n )\n )\n }\n}\n\nfunction toTimesheetDayEntry(raw: any): TimesheetDayEntry {\n return {\n id: raw.Id,\n date: raw.Date__c,\n callbackHours: raw.Callback__c,\n regularHours: raw.HoursEBAdjusted__c,\n miscHours: raw.Misc__c,\n overtime1Hours: raw.OT1__c,\n overtime2Hours: raw.OT2__c,\n onCallHours: raw.OnCall__c,\n misc1HoursA: raw.Misc1__c,\n misc1HoursB: raw.Misc_1_Hours__c,\n misc2Hours: raw.Misc_2_Hours__c,\n misc3Hours: raw.Misc_3_Hours__c,\n misc4Hours: raw.Misc_4_Hours__c,\n stat1Hours: raw.Stat1__c,\n stat2Hours: raw.Stat2__c,\n inChargeHours: raw.In_Charge__c,\n shiftTravelPerDiemHours: raw.Shift_Travel_Stipend__c,\n lastModified: raw.LastModifiedDate\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { Practitioner } from '../../models'\nimport { SF_API_VERSION } from '../apiClient'\n\nexport class SFPractitionerClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n async fetchPractitioners(): Promise<Practitioner[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `\n SELECT Id, FirstName__c, LastName__c, Email__c, StaffID__c\n FROM Personnel__c\n WHERE Status__c = 'Active'\n `\n const {\n data: { records }\n } = await this.axiosInstance.get(url, {\n params: { q: query }\n })\n\n return records.map(toPractitioner)\n } catch (error) {\n console.error('Error fetching practitioners: ', error.message)\n throw error\n }\n }\n}\n\nfunction toPractitioner(raw: any): Practitioner {\n return {\n id: raw.Id,\n firstName: raw.FirstName__c,\n lastName: raw.LastName__c,\n email: raw.Email__c,\n staffId: raw.StaffID__c\n }\n}\n","import { AxiosInstance } from 'axios'\nimport { SF_API_VERSION } from '../apiClient'\nimport { Workorder } from '../../models'\n\nexport class SFWorkorderClient {\n private axiosInstance: AxiosInstance\n\n constructor(axiosInstance: AxiosInstance) {\n this.axiosInstance = axiosInstance\n }\n\n\n async getWorkordersForPractitioner(practitionerId?: string): Promise<Workorder[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = practitionerId\n ? `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c WHERE Personnel__c = '${practitionerId}'`\n : `SELECT Id, HospitalID__c, HospitalName__c, ProfessionalDesignation__c, Personnel__c, startdate__c, EndDate__c, CreatedDate, LastModifiedDate FROM WorkOrder__c`\n return await this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Workorder => ({\n id: record.Id,\n establishmentId: record.HospitalID__c,\n establishmentName: record.HospitalName__c,\n role: record.ProfessionalDesignation__c,\n practitionerId: record.Personnel__c,\n startDate: new Date(record.startdate__c),\n endDate: new Date(record.EndDate__c),\n createdAt: new Date(record.CreatedDate),\n updatedAt: new Date(record.LastModifiedDate)\n })\n )\n )\n } catch (error) {\n console.error('Error fetching work orders: ', error.message)\n throw error\n }\n }\n}","import axios, { AxiosInstance } from 'axios'\nimport { SFAuthenticator } from './auth/auth'\nimport { SFTimesheetClient } from './timesheet/timesheetClient'\nimport { SFPractitionerClient } from './practitioner/practitionerClient'\nimport { Role } from '../models'\nimport { SFWorkorderClient } from './workorder/workorderClient'\n\nexport const SF_API_VERSION: string = 'v57.0'\n\nexport class SFApiClient {\n private instance: SFApiClient | undefined = undefined\n private axiosInstance: AxiosInstance = axios.create()\n private authenticator: SFAuthenticator\n private baseUrl: string\n timesheetClient: SFTimesheetClient\n workorderClient: SFWorkorderClient\n practitionerClient: SFPractitionerClient\n\n constructor(baseUrl?: string) {\n this.baseUrl = baseUrl\n this.axiosInstance.defaults.baseURL =\n baseUrl ?? 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com'\n this.authenticator = new SFAuthenticator(this.axiosInstance, this.baseUrl)\n this.timesheetClient = new SFTimesheetClient(this.axiosInstance)\n this.workorderClient = new SFWorkorderClient(this.axiosInstance)\n this.practitionerClient = new SFPractitionerClient(this.axiosInstance)\n }\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 fetchRoles(): Promise<Role[]> {\n try {\n const url = `/services/data/${SF_API_VERSION}/query`\n const query = `SELECT Label, Value FROM PicklistValueInfo \\\n WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'WorkOrder__c'\\\n AND EntityParticle.QualifiedApiName = 'ProfessionalDesignation__c' \\\n AND isActive = true`\n return this.axiosInstance\n .get(url, {\n params: { q: query }\n })\n .then(({ data: { records } }) =>\n records.map(\n (record): Role => ({\n label: record.Label,\n value: record.Value\n })\n )\n )\n } catch (error) {\n console.error('Error fetching roles: ', error.message)\n throw error\n }\n }\n}\n"],"names":["SFAuthenticator","authenticatedAxiosInstance","baseUrl","this","axios","create","undefined","axiosTokenInstance","defaults","baseURL","_proto","prototype","initializeAuth","_initializeAuth","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","clientId","clientSecret","_this","wrap","_context2","prev","next","postToken","headers","common","sent","interceptors","response","use","_ref","_callee","error","_error$response","originalRequest","newToken","_context","config","_retryCount","status","tokenRefreshPromise","timeout","Promise","race","_","reject","setTimeout","Error","abrupt","t0","stop","_x3","apply","arguments","_x","_x2","_postToken","_callee3","_response$data","tokenFormRequestBody","_context3","FormData","refreshToken","append","post","getHeaders","token","data","_x4","_x5","SFTimesheetClient","axiosInstance","updateTimesheetHour","_updateTimesheetHour","timesheetHourId","timesheet","url","SF_API_VERSION","patch","Date__c","date","Callback__c","callbackHours","HoursEBAdjusted__c","regularHours","Misc__c","miscHours","OT1__c","overtime1Hours","OT2__c","overtime2Hours","OnCall__c","onCallHours","Misc1__c","misc1HoursA","Misc_1_Hours__c","misc1HoursB","Misc_2_Hours__c","misc2Hours","Misc_3_Hours__c","misc3Hours","Misc_4_Hours__c","misc4Hours","Stat1__c","stat1Hours","Stat2__c","stat2Hours","In_Charge__c","inChargeHours","Shift_Travel_Stipend__c","shiftTravelPerDiemHours","includes","console","message","getTimesheetId","_getTimesheetId","workorderId","query","get","params","q","records","Id","getTimesheetsForPractitioner","_getTimesheetsForPractitioner","personnelID","timesheets","_iterator","_step","_createForOfIteratorHelperLoose","done","push","value","WorkOrder__c","id","updatedAt","LastModifiedDate","getTimesheetHoursIds","_getTimesheetHoursIds","_callee4","_context4","map","getTimesheetHours","_getTimesheetHours","_callee6","_context6","all","_ref2","_callee5","_context5","then","res","toTimesheetDayEntry","_x7","_x6","raw","lastModified","SFPractitionerClient","fetchPractitioners","_fetchPractitioners","toPractitioner","firstName","FirstName__c","lastName","LastName__c","email","Email__c","staffId","StaffID__c","SFWorkorderClient","getWorkordersForPractitioner","_getWorkordersForPractitioner","practitionerId","record","establishmentId","HospitalID__c","establishmentName","HospitalName__c","role","ProfessionalDesignation__c","Personnel__c","startDate","Date","startdate__c","endDate","EndDate__c","createdAt","CreatedDate","SFApiClient","authenticator","timesheetClient","workorderClient","practitionerClient","init","_init","sfClientId","sfClientSecret","setInstance","instance","getInstance","fetchRoles","_fetchRoles","label","Label","Value"],"mappings":"koPAGaA,aAOT,SAAAA,EAAYC,EAA2CC,GANvDC,wBAAoCC,EAAMC,SAE1CF,gBAA4BG,EACpBH,uBAAmCG,EACnCH,yBAA8C,KAGlDA,KAAKI,mBAAmBC,SAASC,cAC7BP,EAAAA,EAAW,8DACfC,KAAKF,2BAA6BA,EACrC,IAAAS,EAAAV,EAAAW,UAoDc,OApDdD,EAEKE,0BAAc,IAAAC,EAAAC,EAAAC,IAAAC,MAApB,SAAAC,EAAqBC,EAAkBC,GAAoB,IAAAC,OAAA,OAAAL,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAE,OACnCrB,KAAKsB,UAAUP,EAAUC,GAAa,OAC1DhB,KAAKF,2BAA2BO,SAASkB,QAAQC,OAAsB,wBAD5DL,EAAAM,KAGXzB,KAAKF,2BAA2B4B,aAAaC,SAASC,KAClD,SAAAD,GAAQ,OAAIA,eAAQ,IAAAE,EAAAlB,EAAAC,IAAAC,MACpB,SAAAiB,EAAMC,GAAK,IAAAC,EAAAC,EAAAC,EAAA,OAAAtB,IAAAM,eAAAiB,GAAA,cAAAA,EAAAf,KAAAe,EAAAd,MAAA,OAIP,IAHMY,EAAkBF,EAAMK,QACdC,YAAcJ,EAAgBI,aAAe,IAG9B,cAA3BL,EAAAD,EAAMJ,iBAANK,EAAgBM,SAAkBL,EAAgBI,YAAc,IAACF,EAAAd,QAAA,MAO5D,OANLY,EAAgBI,cAAaF,EAAAf,OAIpBH,EAAKsB,sBACNtB,EAAKsB,oBAAsBtB,EAAKK,UAAUP,EAAUC,IACvDmB,EAAAd,OAEsBJ,EAAKsB,oBAAmB,OAQjB,OARxBL,EAAQC,EAAAV,KAEdR,EAAKsB,oBAAsB,KAE3BtB,EAAKnB,2BAA2BO,SAASkB,QAAQC,OAAsB,wBACzDU,EACdD,EAAgBV,QAAuB,wBAAcW,EAErDD,EAAgBO,QAAU,IAAIL,EAAAd,QAEjBoB,QAAQC,KAAK,CACtBzB,EAAKnB,2BAA2BmC,GAChC,IAAIQ,SAAQ,SAACE,EAAGC,GAAM,OAClBC,YACI,WAAA,OAAMD,EAAO,IAAIE,MAAM,4BACvBb,EAAgBO,cAG1B,QAAA,OAAAL,EAAAY,gBAAAZ,EAAAV,MAAA,QAG6B,OAH7BU,EAAAf,QAAAe,EAAAa,GAAAb,WAGFlB,EAAKsB,oBAAsB,KAAIJ,EAAAY,gBACxBN,QAAQG,OAAMT,EAAAa,KAAc,QAAA,OAAAb,EAAAY,gBAGpCN,QAAQG,OAAOb,IAAM,QAAA,UAAA,OAAAI,EAAAc,UAAAnB,qBAC/B,gBAAAoB,GAAA,OAAArB,EAAAsB,WAAAC,gBACJ,OAAA,UAAA,OAAAjC,EAAA8B,UAAAnC,YA/Ce,OAgDnB,SAhDmBuC,EAAAC,GAAA,OAAA5C,EAAAyC,WAAAC,eAAA7C,EAkDde,qBAAS,IAAAiC,EAAA5C,EAAAC,IAAAC,MAAf,SAAA2C,EAAgBzC,EAAmBC,GAAqB,IAAAyC,EAAAC,EAAA/B,EAAA,OAAAf,IAAAM,eAAAyC,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,OACT,GAArCqC,EAAuB,IAAIE,GAC7B5D,KAAK6D,cAAYF,EAAAtC,OAAA,MACjBqC,EAAqBI,OAAO,gBAAiB9D,KAAK6D,cAClDH,EAAqBI,OAAO,aAAc,iBAAgBH,EAAAtC,QAAA,MAAA,OAAA,IACnDN,IAAYC,GAAY2C,EAAAtC,QAAA,MAC/BqC,EAAqBI,OAAO,YAAa/C,GACzC2C,EAAqBI,OAAO,gBAAiB9C,GAC7C0C,EAAqBI,OAAO,aAAc,sBAAqBH,EAAAtC,QAAA,MAAA,QAAA,MAEzD,IAAIyB,MACN,oGACH,QAAA,OAAAa,EAAAtC,QAGkBrB,KAAKI,mBAAmB2D,KAC3C,yBACAL,EACA,CACInC,QAASmC,EAAqBM,eAErC,QAE4C,GAA7ChE,KAAKiE,aARCtC,EAAQgC,EAAAlC,cAQOgC,EAAR9B,EAAUuC,aAAVT,EAA+B,aACvCzD,KAAKiE,OAAKN,EAAAtC,QAAA,MAAA,MAAQ,IAAIyB,MAAM,yDAAwD,QAAA,OAAAa,EAAAZ,gBAClF/C,KAAKiE,OAAK,QAAA,UAAA,OAAAN,EAAAV,UAAAO,YAzBN,OA0Bd,SA1BcW,EAAAC,GAAA,OAAAb,EAAAJ,WAAAC,eAAAvD,KC9DNwE,aAGT,SAAAA,EAAYC,GACRtE,KAAKsE,cAAgBA,EACxB,IAAA/D,EAAA8D,EAAA7D,UAqFsB,OArFtBD,EAEKgE,+BAAmB,IAAAC,EAAA7D,EAAAC,IAAAC,MAAzB,SAAAiB,EAA0B2C,EAAyBC,GAA4B,IAAAC,EAAAhD,EAAA,OAAAf,IAAAM,eAAAiB,GAAA,cAAAA,EAAAf,KAAAe,EAAAd,MAAA,OAEkB,OAFlBc,EAAAf,OAEjEuD,oBAAwBC,gCAA4CH,EAAetC,EAAAd,OAClErB,KAAKsE,cAAcO,MAAMF,EAAK,CACjDG,QAASJ,EAAUK,KACnBC,YAAaN,EAAUO,cACvBC,mBAAoBR,EAAUS,aAC9BC,QAASV,EAAUW,UACnBC,OAAQZ,EAAUa,eAClBC,OAAQd,EAAUe,eAClBC,UAAWhB,EAAUiB,YACrBC,SAAUlB,EAAUmB,YACpBC,gBAAiBpB,EAAUqB,YAC3BC,gBAAiBtB,EAAUuB,WAC3BC,gBAAiBxB,EAAUyB,WAC3BC,gBAAiB1B,EAAU2B,WAC3BC,SAAU5B,EAAU6B,WACpBC,SAAU9B,EAAU+B,WACpBC,aAAchC,EAAUiC,cACxBC,wBAAyBlC,EAAUmC,0BACrC,OAjBY,GAmBT,CAAC,IAAK,IAAK,KAAKC,UAnBfnF,EAAQQ,EAAAV,MAmByBa,SAAOH,EAAAd,OAAA,MAAA,MACpC,IAAIyB,+BAA+BnB,EAASW,QAAS,OAAAH,EAAAd,QAAA,MAAA,OAAAc,EAAAf,OAAAe,EAAAa,GAAAb,WAE/D4E,QAAQhF,MAAM,kCAAmCI,EAAAa,GAAMgE,SAAQ,QAAA,UAAA,OAAA7E,EAAAc,UAAAnB,oBAzB9C,OA2BxB,SA3BwBuB,EAAAC,GAAA,OAAAkB,EAAArB,WAAAC,eAAA7C,EA6BnB0G,0BAAc,IAAAC,EAAAvG,EAAAC,IAAAC,MAApB,SAAAC,EAAqBqG,GAAmB,IAAAxC,EAAAyC,EAAA,OAAAxG,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKc,OAH5CsD,oBAAwBC,WACxBwC,uGAEiCD,sCAAWhG,EAAAE,OAIxCrB,KAAKsE,cAAc+C,IAAI1C,EAAK,CAClC2C,OAAQ,CAAEC,EAAGH,KACf,OAHiB,OAAAjG,EAAA4B,gBAGjB5B,EAAAM,KAHEyC,KAAQsD,QAIG,GAAGC,IAAE,OAAA,UAAA,OAAAtG,EAAA8B,UAAAnC,YAZJ,OAanB,SAbmBoC,GAAA,OAAAgE,EAAA/D,WAAAC,eAAA7C,EAedmH,wCAA4B,IAAAC,EAAAhH,EAAAC,IAAAC,MAAlC,SAAA2C,EAAmCoE,GAAmB,IAAAjD,EAAAyC,EAAAS,EAAAC,EAAAC,EAAArD,EAAA,OAAA9D,IAAAM,eAAAyC,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,OAOuB,OANnEsD,oBAAwBC,WAExBwC,oRAIwDQ,OAAWjE,EAAAtC,OAEtDrB,KAAKsE,cAAc+C,IAAI1C,EAAK,CAAE2C,OAAQ,CAAEC,EAAGH,KAAU,OAIxE,IAFIS,EAAa,GAEjBC,EAAAE,EAJUrE,EAAAlC,KAImByC,KAAKsD,WAAOO,EAAAD,KAAAG,MACrCJ,EAAWK,KAAK,CACZf,aAFGzC,EAASqD,EAAAI,OAEWC,aACvBC,GAAI3D,EAAU+C,GACda,UAAW5D,EAAU6D,mBAE5B,OAAA5E,EAAAZ,gBAEM8E,GAAU,OAAA,UAAA,OAAAlE,EAAAV,UAAAO,YArBa,OAsBjC,SAtBiCW,GAAA,OAAAwD,EAAAxE,WAAAC,eAAA7C,EAwB5BiI,gCAAoB,IAAAC,EAAA9H,EAAAC,IAAAC,MAA1B,SAAA6H,EAA2BvB,GAAmB,IAAAxC,EAAAyC,EAAA,OAAAxG,IAAAM,eAAAyH,GAAA,cAAAA,EAAAvH,KAAAuH,EAAAtH,MAAA,OAAA,OAAAsH,EAAAtH,OAChBrB,KAAKiH,eAAeE,GAAY,OAKR,OAH5CxC,oBAAwBC,WACxBwC,2GAHWuB,EAAAlH,SAKiCkH,EAAAtH,OAGxCrB,KAAKsE,cAAc+C,IAAI1C,EAAK,CAClC2C,OAAQ,CAAEC,EAAGH,KACf,OAHiB,OAAAuB,EAAA5F,gBAGjB4F,EAAAlH,KAHEyC,KAAQsD,QAIGoB,KAAI,SAAA/G,GAAK,OAAAA,EAAF4F,OAAY,QAAA,UAAA,OAAAkB,EAAA1F,UAAAyF,YAZZ,OAazB,SAbyBtE,GAAA,OAAAqE,EAAAtF,WAAAC,eAAA7C,EAepBsI,6BAAiB,IAAAC,EAAAnI,EAAAC,IAAAC,MAAvB,SAAAkI,EAAwB5B,GAAmB,IAAAlG,OAAA,OAAAL,IAAAM,eAAA8H,GAAA,cAAAA,EAAA5H,KAAA4H,EAAA3H,MAAA,OAAA,OAAA2H,EAAA3H,OACRrB,KAAKwI,qBAAqBrB,GAAY,OAA/C,OAAA6B,EAAAjG,gBACfN,QAAQwG,IADOD,EAAAvH,KAEDmH,eAAG,IAAAM,EAAAvI,EAAAC,IAAAC,MAAC,SAAAsI,EAAMd,GAAE,OAAAzH,IAAAM,eAAAkI,GAAA,cAAAA,EAAAhI,KAAAgI,EAAA/H,MAAA,OAAA,OAAA+H,EAAArG,gBACzB9B,EAAKqD,cACA+C,sBAAsBzC,gCAA4CyD,GAClEgB,MAAK,SAAAC,GAAG,OAAIA,EAAIpF,QAChBmF,KAAKE,IAAoB,OAAA,UAAA,OAAAH,EAAAnG,UAAAkG,OAAA,gBAAAK,GAAA,OAAAN,EAAA/F,WAAAC,kBAErC,OAAA,UAAA,OAAA4F,EAAA/F,UAAA8F,YATkB,OAUtB,SAVsBU,GAAA,OAAAX,EAAA3F,WAAAC,eAAAiB,KAa3B,SAASkF,EAAoBG,GACzB,MAAO,CACHrB,GAAIqB,EAAIjC,GACR1C,KAAM2E,EAAI5E,QACVG,cAAeyE,EAAI1E,YACnBG,aAAcuE,EAAIxE,mBAClBG,UAAWqE,EAAItE,QACfG,eAAgBmE,EAAIpE,OACpBG,eAAgBiE,EAAIlE,OACpBG,YAAa+D,EAAIhE,UACjBG,YAAa6D,EAAI9D,SACjBG,YAAa2D,EAAI5D,gBACjBG,WAAYyD,EAAI1D,gBAChBG,WAAYuD,EAAIxD,gBAChBG,WAAYqD,EAAItD,gBAChBG,WAAYmD,EAAIpD,SAChBG,WAAYiD,EAAIlD,SAChBG,cAAe+C,EAAIhD,aACnBG,wBAAyB6C,EAAI9C,wBAC7B+C,aAAcD,EAAInB,sBC1HbqB,aAGT,SAAAA,EAAYtF,GACRtE,KAAKsE,cAAgBA,EAGD,OAFvBsF,EAAApJ,UAEKqJ,8BAAkB,IAAAC,EAAAnJ,EAAAC,IAAAC,MAAxB,SAAAiB,IAAA,IAAA6C,EAAA,OAAA/D,IAAAM,eAAAiB,GAAA,cAAAA,EAAAf,KAAAe,EAAAd,MAAA,OAGmB,OAHnBc,EAAAf,OAEcuD,oBAAwBC,WACnBzC,EAAAd,OAODrB,KAAKsE,cAAc+C,IAAI1C,EAAK,CAClC2C,OAAQ,CAAEC,iLACZ,OAHiB,OAAApF,EAAAY,gBAGjBZ,EAAAV,KAHEyC,KAAQsD,QAKGoB,IAAImB,IAAe,QAE4B,MAF5B5H,EAAAf,QAAAe,EAAAa,GAAAb,WAElC4E,QAAQhF,MAAM,iCAAkCI,EAAAa,GAAMgE,SAAQ7E,EAAAa,GAAA,QAAA,UAAA,OAAAb,EAAAc,UAAAnB,qBAhB9C,OAmBvB,WAnBuB,OAAAgI,EAAA3G,WAAAC,eAAAwG,KAsB5B,SAASG,EAAeL,GACpB,MAAO,CACHrB,GAAIqB,EAAIjC,GACRuC,UAAWN,EAAIO,aACfC,SAAUR,EAAIS,YACdC,MAAOV,EAAIW,SACXC,QAASZ,EAAIa,gBCnCRC,aAGT,SAAAA,EAAYlG,GACRtE,KAAKsE,cAAgBA,EAIS,OAHjCkG,EAAAhK,UAGKiK,wCAA4B,IAAAC,EAAA/J,EAAAC,IAAAC,MAAlC,SAAAiB,EAAmC6I,GAAuB,IAAAhG,EAAAyC,EAAA,OAAAxG,IAAAM,eAAAiB,GAAA,cAAAA,EAAAf,KAAAe,EAAAd,MAAA,OAKoH,OALpHc,EAAAf,OAE5CuD,oBAAwBC,WACxBwC,EAAQuD,0LACgLA,uKACxBxI,EAAAd,OACzJrB,KAAKsE,cACb+C,IAAI1C,EAAK,CACN2C,OAAQ,CAAEC,EAAGH,KAEhBiC,MAAK,SAAAxH,GAAkB,OAAAA,EAAfqC,KAAQsD,QACLoB,KACJ,SAACgC,GAAM,MAAiB,CACpBvC,GAAIuC,EAAOnD,GACXoD,gBAAiBD,EAAOE,cACxBC,kBAAmBH,EAAOI,gBAC1BC,KAAML,EAAOM,2BACbP,eAAgBC,EAAOO,aACvBC,UAAW,IAAIC,KAAKT,EAAOU,cAC3BC,QAAS,IAAIF,KAAKT,EAAOY,YACzBC,UAAW,IAAIJ,KAAKT,EAAOc,aAC3BpD,UAAW,IAAI+C,KAAKT,EAAOrC,yBAGtC,OAAA,OAAApG,EAAAY,gBAAAZ,EAAAV,MAAA,OAEuD,MAFvDU,EAAAf,OAAAe,EAAAa,GAAAb,WAEL4E,QAAQhF,MAAM,+BAAgCI,EAAAa,GAAMgE,SAAQ7E,EAAAa,GAAA,QAAA,UAAA,OAAAb,EAAAc,UAAAnB,oBA1BlC,OA6BjC,SA7BiCuB,GAAA,OAAAqH,EAAAvH,WAAAC,eAAAoH,KCLzB5F,EAAyB,uCAWlC,SAAA+G,EAAY5L,GARJC,mBAAoCG,EACpCH,mBAA+BC,EAAMC,SAQzCF,KAAKD,QAAUA,EACfC,KAAKsE,cAAcjE,SAASC,cACxBP,EAAAA,EAAW,8DACfC,KAAK4L,cAAgB,IAAI/L,EAAgBG,KAAKsE,cAAetE,KAAKD,SAClEC,KAAK6L,gBAAkB,IAAIxH,EAAkBrE,KAAKsE,eAClDtE,KAAK8L,gBAAkB,IAAItB,EAAkBxK,KAAKsE,eAClDtE,KAAK+L,mBAAqB,IAAInC,EAAqB5J,KAAKsE,eAC3D,IAAA/D,EAAAoL,EAAAnL,UAce,OAdfD,EAEKyL,gBAAI,IAAAC,EAAAtL,EAAAC,IAAAC,MAAV,SAAAiB,EAAWoK,EAAoBC,GAAsB,OAAAvL,IAAAM,eAAAiB,GAAA,cAAAA,EAAAf,KAAAe,EAAAd,MAAA,OAAA,OAAAc,EAAAd,OAE3CrB,KAAK4L,cAAcnL,eAAeyL,EAAYC,GAAe,OAAA,UAAA,OAAAhK,EAAAc,UAAAnB,YAF7D,OAGT,SAHSuB,EAAAC,GAAA,OAAA2I,EAAA9I,WAAAC,eAAA7C,EAKV6L,YAAA,SAAYC,GACRrM,KAAKqM,SAAWA,GACnB9L,EACD+L,YAAA,WACI,OAAOtM,KAAKqM,UACf9L,EAEKgM,sBAAU,IAAAC,EAAA7L,EAAAC,IAAAC,MAAhB,SAAAC,IAAA,OAAAF,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGmB,OAHnBF,EAAAC,OAGmBD,EAAA4B,gBAIJ/C,KAAKsE,cACP+C,sBANyBzC,WAMhB,CACN0C,OAAQ,CAAEC,gQAEb8B,MAAK,SAAAxH,GAAkB,OAAAA,EAAfqC,KAAQsD,QACLoB,KACJ,SAACgC,GAAM,MAAY,CACf6B,MAAO7B,EAAO8B,MACdvE,MAAOyC,EAAO+B,cAGzB,OAEiD,MAFjDxL,EAAAC,OAAAD,EAAA6B,GAAA7B,WAEL4F,QAAQhF,MAAM,yBAA0BZ,EAAA6B,GAAMgE,SAAQ7F,EAAA6B,GAAA,QAAA,UAAA,OAAA7B,EAAA8B,UAAAnC,oBApB9C,OAuBf,WAvBe,OAAA0L,EAAArJ,WAAAC,eAAAuI"}
|
package/dist/pha-hermes.esm.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import FormData from 'form-data';
|
|
3
3
|
|
|
4
|
+
function _arrayLikeToArray(r, a) {
|
|
5
|
+
(null == a || a > r.length) && (a = r.length);
|
|
6
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
7
|
+
return n;
|
|
8
|
+
}
|
|
4
9
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
5
10
|
try {
|
|
6
11
|
var i = n[a](c),
|
|
@@ -26,6 +31,23 @@ function _asyncToGenerator(n) {
|
|
|
26
31
|
});
|
|
27
32
|
};
|
|
28
33
|
}
|
|
34
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
35
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
36
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
37
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
38
|
+
t && (r = t);
|
|
39
|
+
var o = 0;
|
|
40
|
+
return function () {
|
|
41
|
+
return o >= r.length ? {
|
|
42
|
+
done: !0
|
|
43
|
+
} : {
|
|
44
|
+
done: !1,
|
|
45
|
+
value: r[o++]
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
50
|
+
}
|
|
29
51
|
function _regeneratorRuntime() {
|
|
30
52
|
_regeneratorRuntime = function () {
|
|
31
53
|
return e;
|
|
@@ -327,32 +349,98 @@ function _regeneratorRuntime() {
|
|
|
327
349
|
}
|
|
328
350
|
}, e;
|
|
329
351
|
}
|
|
352
|
+
function _unsupportedIterableToArray(r, a) {
|
|
353
|
+
if (r) {
|
|
354
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
355
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
356
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
330
359
|
|
|
331
360
|
var SFAuthenticator = /*#__PURE__*/function () {
|
|
332
361
|
function SFAuthenticator(authenticatedAxiosInstance, baseUrl) {
|
|
333
362
|
this.axiosTokenInstance = axios.create();
|
|
334
363
|
this.token = undefined;
|
|
335
364
|
this.refreshToken = undefined;
|
|
365
|
+
this.tokenRefreshPromise = null;
|
|
336
366
|
this.axiosTokenInstance.defaults.baseURL = baseUrl != null ? baseUrl : 'https://do0000000d247eaa--phealth.sandbox.my.salesforce.com';
|
|
337
367
|
this.authenticatedAxiosInstance = authenticatedAxiosInstance;
|
|
338
368
|
}
|
|
339
369
|
var _proto = SFAuthenticator.prototype;
|
|
340
370
|
_proto.initializeAuth = /*#__PURE__*/function () {
|
|
341
|
-
var _initializeAuth = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
371
|
+
var _initializeAuth = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(clientId, clientSecret) {
|
|
372
|
+
var _this = this;
|
|
342
373
|
var token;
|
|
343
|
-
return _regeneratorRuntime().wrap(function
|
|
344
|
-
while (1) switch (
|
|
374
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
375
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
345
376
|
case 0:
|
|
346
|
-
|
|
377
|
+
_context2.next = 2;
|
|
347
378
|
return this.postToken(clientId, clientSecret);
|
|
348
379
|
case 2:
|
|
349
|
-
token =
|
|
380
|
+
token = _context2.sent;
|
|
350
381
|
this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = "Bearer " + token;
|
|
351
|
-
|
|
382
|
+
this.authenticatedAxiosInstance.interceptors.response.use(function (response) {
|
|
383
|
+
return response;
|
|
384
|
+
}, /*#__PURE__*/function () {
|
|
385
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(error) {
|
|
386
|
+
var _error$response;
|
|
387
|
+
var originalRequest, newToken;
|
|
388
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
389
|
+
while (1) switch (_context.prev = _context.next) {
|
|
390
|
+
case 0:
|
|
391
|
+
originalRequest = error.config;
|
|
392
|
+
originalRequest._retryCount = originalRequest._retryCount || 0;
|
|
393
|
+
// If the error is 401 and we haven't exceeded max retries
|
|
394
|
+
if (!(((_error$response = error.response) == null ? void 0 : _error$response.status) === 401 && originalRequest._retryCount < 3)) {
|
|
395
|
+
_context.next = 22;
|
|
396
|
+
break;
|
|
397
|
+
}
|
|
398
|
+
originalRequest._retryCount++;
|
|
399
|
+
_context.prev = 4;
|
|
400
|
+
// Use existing token refresh if one is in progress
|
|
401
|
+
if (!_this.tokenRefreshPromise) {
|
|
402
|
+
_this.tokenRefreshPromise = _this.postToken(clientId, clientSecret);
|
|
403
|
+
}
|
|
404
|
+
_context.next = 8;
|
|
405
|
+
return _this.tokenRefreshPromise;
|
|
406
|
+
case 8:
|
|
407
|
+
newToken = _context.sent;
|
|
408
|
+
// Clear the refresh promise after it completes
|
|
409
|
+
_this.tokenRefreshPromise = null;
|
|
410
|
+
_this.authenticatedAxiosInstance.defaults.headers.common['Authorization'] = "Bearer " + newToken;
|
|
411
|
+
originalRequest.headers['Authorization'] = "Bearer " + newToken;
|
|
412
|
+
originalRequest.timeout = 5000;
|
|
413
|
+
_context.next = 15;
|
|
414
|
+
return Promise.race([_this.authenticatedAxiosInstance(originalRequest), new Promise(function (_, reject) {
|
|
415
|
+
return setTimeout(function () {
|
|
416
|
+
return reject(new Error('Retry request timeout'));
|
|
417
|
+
}, originalRequest.timeout);
|
|
418
|
+
})]);
|
|
419
|
+
case 15:
|
|
420
|
+
return _context.abrupt("return", _context.sent);
|
|
421
|
+
case 18:
|
|
422
|
+
_context.prev = 18;
|
|
423
|
+
_context.t0 = _context["catch"](4);
|
|
424
|
+
// Clear the refresh promise if it fails
|
|
425
|
+
_this.tokenRefreshPromise = null;
|
|
426
|
+
return _context.abrupt("return", Promise.reject(_context.t0));
|
|
427
|
+
case 22:
|
|
428
|
+
return _context.abrupt("return", Promise.reject(error));
|
|
429
|
+
case 23:
|
|
430
|
+
case "end":
|
|
431
|
+
return _context.stop();
|
|
432
|
+
}
|
|
433
|
+
}, _callee, null, [[4, 18]]);
|
|
434
|
+
}));
|
|
435
|
+
return function (_x3) {
|
|
436
|
+
return _ref.apply(this, arguments);
|
|
437
|
+
};
|
|
438
|
+
}());
|
|
439
|
+
case 5:
|
|
352
440
|
case "end":
|
|
353
|
-
return
|
|
441
|
+
return _context2.stop();
|
|
354
442
|
}
|
|
355
|
-
},
|
|
443
|
+
}, _callee2, this);
|
|
356
444
|
}));
|
|
357
445
|
function initializeAuth(_x, _x2) {
|
|
358
446
|
return _initializeAuth.apply(this, arguments);
|
|
@@ -360,55 +448,55 @@ var SFAuthenticator = /*#__PURE__*/function () {
|
|
|
360
448
|
return initializeAuth;
|
|
361
449
|
}();
|
|
362
450
|
_proto.postToken = /*#__PURE__*/function () {
|
|
363
|
-
var _postToken = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
451
|
+
var _postToken = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(clientId, clientSecret) {
|
|
364
452
|
var _response$data;
|
|
365
453
|
var tokenFormRequestBody, response;
|
|
366
|
-
return _regeneratorRuntime().wrap(function
|
|
367
|
-
while (1) switch (
|
|
454
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
455
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
368
456
|
case 0:
|
|
369
457
|
tokenFormRequestBody = new FormData();
|
|
370
458
|
if (!this.refreshToken) {
|
|
371
|
-
|
|
459
|
+
_context3.next = 6;
|
|
372
460
|
break;
|
|
373
461
|
}
|
|
374
462
|
tokenFormRequestBody.append('refresh_token', this.refreshToken);
|
|
375
463
|
tokenFormRequestBody.append('grant_type', 'refresh_token');
|
|
376
|
-
|
|
464
|
+
_context3.next = 13;
|
|
377
465
|
break;
|
|
378
466
|
case 6:
|
|
379
467
|
if (!(clientId && clientSecret)) {
|
|
380
|
-
|
|
468
|
+
_context3.next = 12;
|
|
381
469
|
break;
|
|
382
470
|
}
|
|
383
471
|
tokenFormRequestBody.append('client_id', clientId);
|
|
384
472
|
tokenFormRequestBody.append('client_secret', clientSecret);
|
|
385
473
|
tokenFormRequestBody.append('grant_type', 'client_credentials');
|
|
386
|
-
|
|
474
|
+
_context3.next = 13;
|
|
387
475
|
break;
|
|
388
476
|
case 12:
|
|
389
477
|
throw new Error('Authentication failed, either the RefreshToken, or ClientId and ClientSecret need to be provided');
|
|
390
478
|
case 13:
|
|
391
|
-
|
|
479
|
+
_context3.next = 15;
|
|
392
480
|
return this.axiosTokenInstance.post('/services/oauth2/token', tokenFormRequestBody, {
|
|
393
481
|
headers: tokenFormRequestBody.getHeaders()
|
|
394
482
|
});
|
|
395
483
|
case 15:
|
|
396
|
-
response =
|
|
484
|
+
response = _context3.sent;
|
|
397
485
|
this.token = response == null || (_response$data = response.data) == null ? void 0 : _response$data['access_token'];
|
|
398
486
|
if (this.token) {
|
|
399
|
-
|
|
487
|
+
_context3.next = 19;
|
|
400
488
|
break;
|
|
401
489
|
}
|
|
402
490
|
throw new Error('Authentication failed, could not get the access token');
|
|
403
491
|
case 19:
|
|
404
|
-
return
|
|
492
|
+
return _context3.abrupt("return", this.token);
|
|
405
493
|
case 20:
|
|
406
494
|
case "end":
|
|
407
|
-
return
|
|
495
|
+
return _context3.stop();
|
|
408
496
|
}
|
|
409
|
-
},
|
|
497
|
+
}, _callee3, this);
|
|
410
498
|
}));
|
|
411
|
-
function postToken(
|
|
499
|
+
function postToken(_x4, _x5) {
|
|
412
500
|
return _postToken.apply(this, arguments);
|
|
413
501
|
}
|
|
414
502
|
return postToken;
|
|
@@ -505,7 +593,7 @@ var SFTimesheetClient = /*#__PURE__*/function () {
|
|
|
505
593
|
}();
|
|
506
594
|
_proto.getTimesheetsForPractitioner = /*#__PURE__*/function () {
|
|
507
595
|
var _getTimesheetsForPractitioner = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(personnelID) {
|
|
508
|
-
var url, query, data;
|
|
596
|
+
var url, query, data, timesheets, _iterator, _step, timesheet;
|
|
509
597
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
510
598
|
while (1) switch (_context3.prev = _context3.next) {
|
|
511
599
|
case 0:
|
|
@@ -519,8 +607,17 @@ var SFTimesheetClient = /*#__PURE__*/function () {
|
|
|
519
607
|
});
|
|
520
608
|
case 4:
|
|
521
609
|
data = _context3.sent;
|
|
522
|
-
|
|
523
|
-
|
|
610
|
+
timesheets = [];
|
|
611
|
+
for (_iterator = _createForOfIteratorHelperLoose(data.data.records); !(_step = _iterator()).done;) {
|
|
612
|
+
timesheet = _step.value;
|
|
613
|
+
timesheets.push({
|
|
614
|
+
workorderId: timesheet.WorkOrder__c,
|
|
615
|
+
id: timesheet.Id,
|
|
616
|
+
updatedAt: timesheet.LastModifiedDate
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
return _context3.abrupt("return", timesheets);
|
|
620
|
+
case 8:
|
|
524
621
|
case "end":
|
|
525
622
|
return _context3.stop();
|
|
526
623
|
}
|
|
@@ -531,114 +628,79 @@ var SFTimesheetClient = /*#__PURE__*/function () {
|
|
|
531
628
|
}
|
|
532
629
|
return getTimesheetsForPractitioner;
|
|
533
630
|
}();
|
|
534
|
-
_proto.getTimesheetsIdAndDateForPractitioner = /*#__PURE__*/function () {
|
|
535
|
-
var _getTimesheetsIdAndDateForPractitioner = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(personnelID) {
|
|
536
|
-
var url, query, data;
|
|
537
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
538
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
539
|
-
case 0:
|
|
540
|
-
url = "/services/data/" + SF_API_VERSION + "/query";
|
|
541
|
-
query = "SELECT Id, LastModifiedDate\n FROM TimeSheet__c\n WHERE WorkOrder__c IN (SELECT Id\n FROM WorkOrder__c\n WHERE Personnel__c = '" + personnelID + "')";
|
|
542
|
-
_context4.next = 4;
|
|
543
|
-
return this.axiosInstance.get(url, {
|
|
544
|
-
params: {
|
|
545
|
-
q: query
|
|
546
|
-
}
|
|
547
|
-
});
|
|
548
|
-
case 4:
|
|
549
|
-
data = _context4.sent;
|
|
550
|
-
return _context4.abrupt("return", data.data.records.map(function (_ref) {
|
|
551
|
-
var Id = _ref.Id,
|
|
552
|
-
LastModifiedDate = _ref.LastModifiedDate;
|
|
553
|
-
return {
|
|
554
|
-
Id: Id,
|
|
555
|
-
LastModifiedDate: LastModifiedDate
|
|
556
|
-
};
|
|
557
|
-
}));
|
|
558
|
-
case 6:
|
|
559
|
-
case "end":
|
|
560
|
-
return _context4.stop();
|
|
561
|
-
}
|
|
562
|
-
}, _callee4, this);
|
|
563
|
-
}));
|
|
564
|
-
function getTimesheetsIdAndDateForPractitioner(_x5) {
|
|
565
|
-
return _getTimesheetsIdAndDateForPractitioner.apply(this, arguments);
|
|
566
|
-
}
|
|
567
|
-
return getTimesheetsIdAndDateForPractitioner;
|
|
568
|
-
}();
|
|
569
631
|
_proto.getTimesheetHoursIds = /*#__PURE__*/function () {
|
|
570
|
-
var _getTimesheetHoursIds = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
632
|
+
var _getTimesheetHoursIds = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workorderId) {
|
|
571
633
|
var timesheetId, url, query, _yield$this$axiosInst2, records;
|
|
572
|
-
return _regeneratorRuntime().wrap(function
|
|
573
|
-
while (1) switch (
|
|
634
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
635
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
574
636
|
case 0:
|
|
575
|
-
|
|
637
|
+
_context4.next = 2;
|
|
576
638
|
return this.getTimesheetId(workorderId);
|
|
577
639
|
case 2:
|
|
578
|
-
timesheetId =
|
|
640
|
+
timesheetId = _context4.sent;
|
|
579
641
|
// First we find the correct timesheet hours id
|
|
580
642
|
url = "/services/data/" + SF_API_VERSION + "/query";
|
|
581
643
|
query = "SELECT Id\n FROM TimesheetHour__c\n WHERE Timesheet__c = '" + timesheetId + "'";
|
|
582
|
-
|
|
644
|
+
_context4.next = 7;
|
|
583
645
|
return this.axiosInstance.get(url, {
|
|
584
646
|
params: {
|
|
585
647
|
q: query
|
|
586
648
|
}
|
|
587
649
|
});
|
|
588
650
|
case 7:
|
|
589
|
-
_yield$this$axiosInst2 =
|
|
651
|
+
_yield$this$axiosInst2 = _context4.sent;
|
|
590
652
|
records = _yield$this$axiosInst2.data.records;
|
|
591
|
-
return
|
|
592
|
-
var Id =
|
|
653
|
+
return _context4.abrupt("return", records.map(function (_ref) {
|
|
654
|
+
var Id = _ref.Id;
|
|
593
655
|
return Id;
|
|
594
656
|
}));
|
|
595
657
|
case 10:
|
|
596
658
|
case "end":
|
|
597
|
-
return
|
|
659
|
+
return _context4.stop();
|
|
598
660
|
}
|
|
599
|
-
},
|
|
661
|
+
}, _callee4, this);
|
|
600
662
|
}));
|
|
601
|
-
function getTimesheetHoursIds(
|
|
663
|
+
function getTimesheetHoursIds(_x5) {
|
|
602
664
|
return _getTimesheetHoursIds.apply(this, arguments);
|
|
603
665
|
}
|
|
604
666
|
return getTimesheetHoursIds;
|
|
605
667
|
}();
|
|
606
668
|
_proto.getTimesheetHours = /*#__PURE__*/function () {
|
|
607
|
-
var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
669
|
+
var _getTimesheetHours = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(workorderId) {
|
|
608
670
|
var _this = this;
|
|
609
671
|
var timesheetHourIds;
|
|
610
|
-
return _regeneratorRuntime().wrap(function
|
|
611
|
-
while (1) switch (
|
|
672
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
673
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
612
674
|
case 0:
|
|
613
|
-
|
|
675
|
+
_context6.next = 2;
|
|
614
676
|
return this.getTimesheetHoursIds(workorderId);
|
|
615
677
|
case 2:
|
|
616
|
-
timesheetHourIds =
|
|
617
|
-
return
|
|
618
|
-
var
|
|
619
|
-
return _regeneratorRuntime().wrap(function
|
|
620
|
-
while (1) switch (
|
|
678
|
+
timesheetHourIds = _context6.sent;
|
|
679
|
+
return _context6.abrupt("return", Promise.all(timesheetHourIds.map(/*#__PURE__*/function () {
|
|
680
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(id) {
|
|
681
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
682
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
621
683
|
case 0:
|
|
622
|
-
return
|
|
684
|
+
return _context5.abrupt("return", _this.axiosInstance.get("/services/data/" + SF_API_VERSION + "/sobjects/TimeSheetHour__c/" + id).then(function (res) {
|
|
623
685
|
return res.data;
|
|
624
686
|
}).then(toTimesheetDayEntry));
|
|
625
687
|
case 1:
|
|
626
688
|
case "end":
|
|
627
|
-
return
|
|
689
|
+
return _context5.stop();
|
|
628
690
|
}
|
|
629
|
-
},
|
|
691
|
+
}, _callee5);
|
|
630
692
|
}));
|
|
631
|
-
return function (
|
|
632
|
-
return
|
|
693
|
+
return function (_x7) {
|
|
694
|
+
return _ref2.apply(this, arguments);
|
|
633
695
|
};
|
|
634
696
|
}())));
|
|
635
697
|
case 4:
|
|
636
698
|
case "end":
|
|
637
|
-
return
|
|
699
|
+
return _context6.stop();
|
|
638
700
|
}
|
|
639
|
-
},
|
|
701
|
+
}, _callee6, this);
|
|
640
702
|
}));
|
|
641
|
-
function getTimesheetHours(
|
|
703
|
+
function getTimesheetHours(_x6) {
|
|
642
704
|
return _getTimesheetHours.apply(this, arguments);
|
|
643
705
|
}
|
|
644
706
|
return getTimesheetHours;
|