@idpartner/bank-internal-services-api
v0.0.2
Published
`@idpartner/bank-internal-services-api` is an auto-generated Typescript HTTP client for interacting with the Bank Internal Services API.
Downloads
2
Keywords
Readme
@idpartner/bank-internal-services-api
@idpartner/bank-internal-services-api
is an auto-generated Typescript HTTP client for interacting with the Bank Internal Services API.
Overview
This package provides a convenient way to integrate the IDPartner Trust Platform with the pre-existing Bank Internal Services. It provides functions to get users, get devices, upsert devices, send push notifications, validate mobile access tokens, etc.
The package was generated using the openapi-generator/typescript-axios using the Bank Internal Services OpenAPI spec. The UI for the OpenAPI spec can be found here.
To re-generate this library using the latest version of the openapi-generator/typescript-axios and the Bank Internal Services OpenAPI spec run:
docker run --rm --pull=always \
-v ${PWD}:/bank-internal-services openapitools/openapi-generator-cli generate \
-i https://api-docs.idpartner.com/bank-internal-services/raw.yml \
-g typescript-axios \
-o /bank-internal-services/ \
--additional-properties withNodeImports=true \
--additional-properties supportsES6=true \
--additional-properties useSingleRequestParameter=true \
--additional-properties apiPackage=api \
--additional-properties modelPackage=models \
--additional-properties withSeparateModelsAndApi=true
# Make sure you run the following to allow the generated client work with dynamic bank internal services URLs
sed -i '' 's/const localVarPath \= /const localVarPath \= options\.url \|\| /g' api/bank-internal-services-api.ts
Installation
Install the package using npm:
npm install @idpartner/bank-internal-services-api
Or, if you prefer yarn, install the package running:
yarn add @idpartner/bank-internal-services-api
Usage
Import and initialize the client:
import { BankInternalServicesApi } from '@idpartner/bank-internal-services-api';
const bankInternalServicesApi = BankInternalServicesApi();
If you already have an axios instance, you can specify it to avoid generating a new one:
import axios from 'axios';
import { BankInternalServicesApi } from '@idpartner/bank-internal-services-api';
const axiosClient = axios.create(customAxiosConfig);
const bankInternalServicesApi = BankInternalServicesApi(undefined, undefined, axiosClient);
Examples
The initialization of some consts was ommited to make this shorter
import JOSEWrapper from '@idpartner/jose-wrapper';
// These headers will be forwarded to the Bank Internal Services API
// as X-FAPI-Interaction-ID and X-Verification-ID. They should be logged
// in the bank services for debugging and tracing.
const tracingHeaders = {
xFAPIInteractionID,
xVerificationID
};
// Generate a 1 minute valid auth token with required claims
const authToken = await JOSEWrapper.createJWS({
claims: {
sub: subject,
iss: oidcServiceURL,
aud: bankInternalServicesURL,
iat: Math.floor(Date.now() / 1000),
exp: Math.floor((Date.now() / 1000) + 60),
}
}, jwks);
// Define custom axios config
const axiosConfig = {
// Set request timeout to 30 seconds
timeout: 30_000
// Set custom headers
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': authToken,
},
};
// Verify Mobile Access Token
await bankInternalServicesApi.verifyMobileAccessToken({
...tracingHeaders,
tokenValidationRequest: { access_token: accessToken }
}, axiosConfig);
// Get User by ID
await bankInternalServicesApi.getUser({
...tracingHeaders,
userId
}, axiosConfig);
// Get Device by ID
await bankInternalServicesApi.getDevice({
...tracingHeaders,
deviceId
}, axiosConfig);
// Upsert Device
await bankInternalServicesApi.upsertDevice({
...tracingHeaders,
deviceUpsertRequest: payload
}, axiosConfig);
// Send Push Authentication
await bankInternalServicesApi.sendPushAuthentication({
...tracingHeaders,
pushAuthenticationRequest: {
device_token: deviceToken,
challenge_reference_url: challengeReferenceURL,
challenge_expires_at: challengeExpiresAt,
relying_party_name: relyingPartyName,
}
}, axiosConfig);
Documentation for API Endpoints
For more detailed information about the API endpoints, models, and responses, refer to the provided OpenAPI specification hosted at https://api-docs.idpartner.com/bank-internal-services
Building
To build and compile the typescript sources to javascript use:
npm install
npm run build
Publishing
First build the package then run npm publish --access=public
Support
For support, please contact [email protected].