1.0.8 • Published 4 years ago

regime_js v1.0.8

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

regime_js

Build status

Australian Open Banking API NodeJS client.

This client allows you to call the existing endopoints for the Australion Open Banking Consumer Data Right. All functions are asyncronous and promise native.

Installation and useage

$ npm install regime_js

Once installed the package can be used from the command line Example:

$ regime getProductArray ANZ 1

Will return the entire products array for ANZ xv 1

To use in your project require the package:

const regime = require("regime_js");

Testing

This unit contains both unit and functional tests so you can see the performance of the end points.

To run both sets of tests including audit and code coverage run this command;

$ npm test

To only run the functional tests;

$ npm run-script funcTest

To only run the unit tests

$ npm run-script unitTest

A mochawesome report for each test type will be automatically generated and stored in the root directory.

Functions

The functions available for use

Get Products API Functions

getProductsArray()

getProductsArray(bank, xv, [xvmin] [effective], [updated-since], [brand], [product-category], [page"], [page-size]) => Promise

The getProductsArray() function calls the requested bank's endpoint with the requested filters, and automatically paginates to return the entire products array. This function cannot be combined with user pagination. All Optional Paramaters must be passed in as a key value pair object with the name and the value. Please see parameters section for details of optional supported input.

Examples

const regime = require("regime_js");
async function printBankProducts() {
  let WBAProducts;
  try {
    WBAProducts = await regime.getProductsArray("WBA", 1, {
      "product-category": "TRANS_AND_SAVINGS_ACCOUNTS",
    });
  } catch (error) {
    console.log(error);
  }
  console.log(WBAProducts);
}

This will print the complete product array for all Transaction and Savings account supplied by the Westpac open banking API endpoint

Example Array member

{
  "productId": "String",
  "lastUpdated": "2019-09-18T05:52:35Z",
  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
  "name": "String",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas quis interdum dolor.",
  "brand": "Bank",
  "isTailored": "false",
  "additionalInformation": {
    "overviewUri": "url"
  }
}

The below will do the same from the command line with an optional parameter included:

regime getProductArray WBA 1 {{"product-category":"TRANS_AND_SAVINGS_ACCOUNTS"}}

callGetProductsAPI()

getProductsArray(bank, xv, [xvmin] [page-size], [page], [effective], [updated-since], [brand], [product-category]) => Promise The CallGetProductsAPI() function directly calls the endpoint of the specified bank using the specified version number. Any number or combination of CDR speficed filtering values may be used. The function will return the unfiltered response object. Please see parameters section for details of supported input. Examples Running the code below

const regime = require("regime_js");
async function getProducts() {
  let res;
  try {
    res = await regime.callGetProductsAPI("ANZ", 1);
  } catch (error) {
    console.log(error);
  }
  console.log(res);
}
getProducts();

will return something like this:

{
  "data": {
    "products": [
      ///This Array Contains product objects for the specified bank
    ]
  },
  "meta": { "totalRecords": 28, "totalPages": 2 },
  "links": {
    "self": "url",
    "next": "url",
    "first": "url",
    "last": "url"
  }
}

From command line

$ regime callProductsAPI ANZ 1

Get Product details API Functions

These functions use the product details endpoint for the specifed bank to return the specified data.

callGetProductDetailsAPI()

The callGetProductDetails() function calls the specified bank endpoint, for the specified productID. This endpoint does not support pagination or any custom paramaters. xminv is the only optional paramater.

callGetProductDetails(bank, xv, productID, [xminv]) => Promise

Examples

Running the code below

async function getProductDetails() {
  let res;
  try {
    res = await regime.callGetProductDetailsAPI(
      "ANZ",
      1,
      "3a86f9e4-1b41-4222-9091-5934d1fc9178"
    );
  } catch (error) {
    console.log(error);
  }
  console.log(res);
}
getProductDetails();

will return something like this:

{
  "data": {
    "lastUpdated": "2020-02-20T04:07:19.779670Z",
    "additionalInformation": {
      "eligibilityUri": "URI",
      "feesAndPricingUri": "URI",
      "termsUri": "URI",
      "overviewUri": "URI"
    },
    "fees": [
      //This Array contains fees objects for the product
    ],
    "isTailored": false,
    "lendingRates": [
      //This Array contains lending rates objects for the product
    ],
    "productId": "3a86f9e4-1b41-4222-9091-5934d1fc9178",
    "name": "Product Name String",
    "description": "Product Description String",
    "applicationUri": "URI",
    "effectiveFrom": "2020-02-20T13:00:00Z",
    "brand": "ANZ",
    "productCategory": "RESIDENTIAL_MORTGAGES"
  },
  "meta": {},
  "links": {
    "self": "URL"
  }
}

From the command line

$ regime callGetProductDetailsAPI ANZ 1 3a86f9e4-1b41-4222-9091-5934d1fc9178

Supported Paramaters

Details of the all supported paramaters can be found in the Consumer Data Right Standard

Get Products API Parameters

NameTypeRequiredSupported FunctionsDescription
effectivestringoptionalgetProducts(), callGetProductsAPI()Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'
updated-sinceDateTimeStringoptionalgetProducts(), callGetProductsAPI()Only include products that have been updated after the specified date and time. If absent defaults to include all products
brandstringoptionalgetProducts(), callGetProductsAPI()Filter results based on a specific brand
product-categorystringoptionalgcallGetProductsAPI()Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
pagePositiveIntegeroptionalcallGetProductsAPI()Page of results to request (standard pagination)
page-sizePositiveIntegeroptionalcallGetProductsAPI()Page size to request. Default is 25 (standard pagination)
x-vstringmandatorygetProducts(), callGetProductsAPI()Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between x-min-v and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v header should be treated as absent. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. See HTTP Headers
x-min-vstringoptionalgetProducts(), callGetProductsAPI()Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.

Enumerated Values |Parameter| Value|Supported Functions| |:--------- |:------ |:------ | |effective |CURRENT |getProducts(), callGetProductsAPI()| |effective |FUTURE|getProducts(), callGetProductsAPI()| |effective |ALL|getProducts(), callGetProductsAPI()| |product-category |TRANS_AND_SAVINGS_ACCOUNTS|getProducts(), callGetProductsAPI()| |product-category |TERM_DEPOSITS |getProducts(), callGetProductsAPI()| |product-category |TRAVEL_CARDS |getProducts(), callGetProductsAPI()| |product-category |REGULATED_TRUST_ACCOUNTS |getProducts(), callGetProductsAPI()| |product-category |RESIDENTIAL_MORTGAGES |getProducts(), callGetProductsAPI()| |product-category |CRED_AND_CHRG_CARDS |getProducts(), callGetProductsAPI()| |product-category |PERS_LOANS |getProducts(), callGetProductsAPI()| |product-category |MARGIN_LOANS |getProducts(), callGetProductsAPI()| |product-category |LEASES |getProducts(), callGetProductsAPI()| |product-category |TRADE_FINANCE |getProducts(), callGetProductsAPI()| |product-category |OVERDRAFTS |getProducts(), callGetProductsAPI()| |product-category |BUSINESS_LOANS|getProducts(), callGetProductsAPI()|

Authors

Nikki Renvoize

1.0.2

4 years ago

1.0.1

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.3

4 years ago

1.0.0

4 years ago