@idpartner/bank-internal-services-api
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

@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 support@idpartner.com.

Readme

Keywords

none

Package Sidebar

Install

npm i @idpartner/bank-internal-services-api

Weekly Downloads

0

Version

0.0.2

License

none

Unpacked Size

283 kB

Total Files

94

Last publish

Collaborators

  • gioidpartner
  • francisco-idpartner
  • chrismccaw