UNPKG

@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) 4 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],t):t((e||self).nuiFederationTsSdk={},e.axios)}(this,function(e,t){function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var n=/*#__PURE__*/r(t);function i(){return i=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},i.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}var s=function(e){return n.default.post(e.baseUrl+"/sytems/token",{clientId:e.clientId,clientSecret:e.clientSecret})};function c(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}var u=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}var r,n;n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,o(r,n);var i=t.prototype;return i.getOrCreateUIN=function(e){try{return Promise.resolve(this.request({url:"/uins",options:{method:"PUT",data:e}}))}catch(e){return Promise.reject(e)}},i.revokeUIN=function(e){try{return Promise.resolve(this.request({url:"/uins/"+e+"/revoke",options:{method:"DELETE"}}))}catch(e){return Promise.reject(e)}},i.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 e(e,t,r){var i=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=e,this.clientId=t,this.clientSecret=r,!e||!t||!r)throw new Error("Please provide all required configuration parameters");this.accessToken||s({baseUrl:this.baseUrl,clientId:this.clientId,clientSecret:this.clientSecret}).then(function(e){i.accessToken=e.data.accessToken}).catch(function(e){return console.error(e)}),this.instance=n.default.create({baseURL:this.baseUrl,headers:{"Content-Type":"application/json"}})}return e.prototype.request=function(e){var t=e.url,r=e.options;try{var n=this;return n.instance.interceptors.request.use(function(e){return n.accessToken&&(e.headers.Authorization="Bearer "+n.accessToken),e},function(e){return Promise.reject(e)}),n.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 i=e.response,o=e.config,u=function(){if((401===i.status||403===i.status)&&!o._retry){var e=function(e){if(t)return e;o.headers.Authorization="Bearer "+n.accessToken;var r=n.instance(o);return t=1,r};o._retry=!0;var r=function(){if(!n.isAlreadyFetchingAccessToken)return n.isAlreadyFetchingAccessToken=!0,function(e,r){try{var i=c(function(){return Promise.resolve(s({baseUrl:n.baseUrl,clientId:n.clientId,clientSecret:n.clientSecret})).then(function(e){n.accessToken=e.data.accessToken})},function(e){var r=Promise.reject(e);return t=1,r})}catch(e){return r(!0,e)}return i&&i.then?i.then(r.bind(null,!1),r.bind(null,!0)):r(!1,i)}(0,function(e,t){if(n.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(c(function(){return Promise.resolve(n.instance.request(i({url:t},r))).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)}},e}());e.NuiFederation=function(e,t,r){this.uin=void 0,this.uin=new u(e,t,r)}});