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

91 lines 4.29 kB
/** * Shell Data & Reporting APIsLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { createAuthProviderFromConfig } from './authProvider.js'; import { ClientCredentialsAuthManager } from './clientCredentialsAuthManager.js'; import { Environment } from './configuration.js'; import { DEFAULT_CONFIGURATION, DEFAULT_RETRY_CONFIG, } from './defaultConfiguration.js'; import { ApiError } from './core.js'; import { AbortError, createRequestBuilderFactory, } from './core.js'; import { HttpClient } from './clientAdapter.js'; const USER_AGENT = 'APIMATIC 3.0'; export class Client { constructor(config) { var _a, _b, _c, _d, _e; this._config = Object.assign(Object.assign({}, DEFAULT_CONFIGURATION), config); this._retryConfig = Object.assign(Object.assign({}, DEFAULT_RETRY_CONFIG), (_a = this._config.httpClientOptions) === null || _a === void 0 ? void 0 : _a.retryConfig); this._timeout = typeof ((_b = this._config.httpClientOptions) === null || _b === void 0 ? void 0 : _b.timeout) != 'undefined' ? this._config.httpClientOptions.timeout : this._config.timeout; const clonedConfig = Object.assign(Object.assign({}, this._config), { clientCredentialsAuthCredentials: this._config .clientCredentialsAuthCredentials || { oAuthClientId: '', oAuthClientSecret: '', } }); this._requestBuilderFactory = createRequestHandlerFactory((server) => getBaseUri(server, this._config), createAuthProviderFromConfig(this._config, () => this.clientCredentialsAuthManager), new HttpClient(AbortError, { timeout: this._timeout, clientConfigOverrides: this._config.unstable_httpClientOptions, httpAgent: (_c = this._config.httpClientOptions) === null || _c === void 0 ? void 0 : _c.httpAgent, httpsAgent: (_d = this._config.httpClientOptions) === null || _d === void 0 ? void 0 : _d.httpsAgent, proxySettings: (_e = this._config.httpClientOptions) === null || _e === void 0 ? void 0 : _e.proxySettings, }), [withErrorHandlers, withUserAgent, withAuthenticationByDefault], this._retryConfig); this.clientCredentialsAuthManager = new ClientCredentialsAuthManager(clonedConfig.clientCredentialsAuthCredentials, this); } getRequestBuilderFactory() { return this._requestBuilderFactory; } /** * Clone this client and override given configuration options */ withConfiguration(config) { return new Client(Object.assign(Object.assign({}, this._config), config)); } } function createHttpClientAdapter(client) { return async (request, requestOptions) => { return await client.executeRequest(request, requestOptions); }; } function getBaseUri(server = 'OAuth Server', config) { if (config.environment === Environment.SIT) { if (server === 'OAuth Server') { return 'https://api-test.shell.com'; } if (server === 'Shell') { return 'https://api-test.shell.com/test'; } } if (config.environment === Environment.Production) { if (server === 'OAuth Server') { return 'https://api.shell.com'; } if (server === 'Shell') { return 'https://api.shell.com'; } } throw new Error('Could not get Base URL. Invalid environment or server.'); } function createRequestHandlerFactory(baseUrlProvider, authProvider, httpClient, addons, retryConfig) { const requestBuilderFactory = createRequestBuilderFactory(createHttpClientAdapter(httpClient), baseUrlProvider, ApiError, authProvider, retryConfig); return tap(requestBuilderFactory, ...addons); } function tap(requestBuilderFactory, ...callback) { return (...args) => { const requestBuilder = requestBuilderFactory(...args); callback.forEach((c) => c(requestBuilder)); return requestBuilder; }; } function withErrorHandlers(rb) { rb.defaultToError(ApiError); } function withUserAgent(rb) { rb.header('user-agent', USER_AGENT); } function withAuthenticationByDefault(rb) { rb.authenticate([{ bearerToken: true }]); } //# sourceMappingURL=client.js.map