UNPKG

data-and-reporting-sdk

Version:

Data And Reporting product consists of API's which provides details of transaction and invoice informations about shell cards. The Shell Card Transaction and Invoice API is REST-based and employs Basic authentication in Version 1 and Oauth authentication

44 lines 1.74 kB
/** * Shell Data & Reporting APIsLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { isExpired, isValid } from './authentication.js'; import { OAuthAuthorizationController } from './controllers/oAuthAuthorizationController.js'; export class ClientCredentialsAuthManager { constructor({ oAuthClientId, oAuthClientSecret, oAuthClockSkew, }, client) { this._oAuthClientId = oAuthClientId; this._oAuthClientSecret = oAuthClientSecret; this._oAuthClockSkew = oAuthClockSkew; this._oAuthController = new OAuthAuthorizationController(client); } async updateToken(oAuthToken) { if (!this.isValid(oAuthToken) || this.isExpired(oAuthToken)) { oAuthToken = await this.fetchToken(); } return oAuthToken; } isValid(oAuthToken) { return isValid(oAuthToken); } isExpired(oAuthToken) { return isExpired(oAuthToken, this._oAuthClockSkew); } async fetchToken(additionalParams) { const authorization = this.getClientBasicAuth(this._oAuthClientId, this._oAuthClientSecret); const { result } = await this._oAuthController.requestToken(authorization, undefined, additionalParams); return this.setExpiry(result); } getClientBasicAuth(clientId, clientSecret) { return `Basic ${Buffer.from(clientId + ':' + clientSecret).toString('base64')}`; } async setExpiry(token) { const newToken = token; if (newToken.expiresIn) { newToken.expiry = BigInt(Math.round(Date.now() / 1000)) + newToken.expiresIn; } return newToken; } } //# sourceMappingURL=clientCredentialsAuthManager.js.map