@digital-gov-mg/nui-federation-ts-sdk
Version:
This TypeScript SDK connects to the NUI Federation API for getting or creating, revoke, generating batch for NUI from the API
2 lines (1 loc) • 3.51 kB
JavaScript
import*as e from"axios";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(null,arguments)}function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}var n=function(t){return e.default.post(t.baseUrl+"/sytems/token",{clientId:t.clientId,clientSecret:t.clientSecret})};function i(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}var s=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}var n,i;i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,r(n,i);var s=t.prototype;return s.getOrCreateUIN=function(e){try{return Promise.resolve(this.request({url:"/uins",options:{method:"PUT",data:e}}))}catch(e){return Promise.reject(e)}},s.revokeUIN=function(e){try{return Promise.resolve(this.request({url:"/uins/"+e+"/revoke",options:{method:"DELETE"}}))}catch(e){return Promise.reject(e)}},s.generateBatchUIN=function(e){try{return Promise.resolve(this.request({url:"/uins/batch",options:{method:"POST",params:{count:e}}}))}catch(e){return Promise.reject(e)}},t}(/*#__PURE__*/function(){function r(t,r,i){var s=this;if(this.baseUrl=void 0,this.clientId=void 0,this.clientSecret=void 0,this.instance=void 0,this.accessToken=null,this.isAlreadyFetchingAccessToken=!1,this.baseUrl=t,this.clientId=r,this.clientSecret=i,!t||!r||!i)throw new Error("Please provide all required configuration parameters");this.accessToken||n({baseUrl:this.baseUrl,clientId:this.clientId,clientSecret:this.clientSecret}).then(function(e){s.accessToken=e.data.accessToken}).catch(function(e){return console.error(e)}),this.instance=e.default.create({baseURL:this.baseUrl,headers:{"Content-Type":"application/json"}})}return r.prototype.request=function(e){var r=e.url,s=e.options;try{var o=this;return o.instance.interceptors.request.use(function(e){return o.accessToken&&(e.headers.Authorization="Bearer "+o.accessToken),e},function(e){return Promise.reject(e)}),o.instance.interceptors.response.use(function(e){return e},function(e){try{var t,r=function(r){return t?r:Promise.reject(e)};if(!e.response)return Promise.reject(e);var s=e.response,c=e.config,u=function(){if((401===s.status||403===s.status)&&!c._retry){var e=function(e){if(t)return e;c.headers.Authorization="Bearer "+o.accessToken;var r=o.instance(c);return t=1,r};c._retry=!0;var r=function(){if(!o.isAlreadyFetchingAccessToken)return o.isAlreadyFetchingAccessToken=!0,function(e,r){try{var s=i(function(){return Promise.resolve(n({baseUrl:o.baseUrl,clientId:o.clientId,clientSecret:o.clientSecret})).then(function(e){o.accessToken=e.data.accessToken})},function(e){var r=Promise.reject(e);return t=1,r})}catch(e){return r(!0,e)}return s&&s.then?s.then(r.bind(null,!1),r.bind(null,!0)):r(!1,s)}(0,function(e,t){if(o.isAlreadyFetchingAccessToken=!1,e)throw t;return t})}();return r&&r.then?r.then(e):e(r)}}();return Promise.resolve(u&&u.then?u.then(r):r(u))}catch(e){return Promise.reject(e)}}),Promise.resolve(i(function(){return Promise.resolve(o.instance.request(t({url:r},s))).then(function(e){return e.data})},function(e){var t,r=(null==(t=e.response)||null==(t=t.data)?void 0:t.message)||e.message||"An error occurred while sending request";throw new Error(r)}))}catch(e){return Promise.reject(e)}},r}()),o=function(e,t,r){this.uin=void 0,this.uin=new s(e,t,r)};export{o as NuiFederation};