@notarise-gov-sg/transient-storage-lib
TypeScript icon, indicating that this package has built-in type declarations

0.3.6 • Public • Published

api-transient-storage helper library

A helper library to query with api-transient-storage api gateway

1. Getting Started

npm i @notarise-gov-sg/transient-storage-lib

2. Import the helper functions

This lib can be used as a class or through individual functions, depending on coding preference

<endpoint> refers to the api-transient-storage api gateway url
<apiKey> refers to the api-transient-storage api gateway key
<reference> refers to the request id, e.g. uuid
<document> refers to the OA document to upload

Function way

import { getQueueNumber, buildStoredUrl, uploadDocument, VERIFY_URL } from "@notarise-gov-sg/transient-storage-lib";

const {id, key} = await getQueueNumber(<endpoint>, <apiKey>, <reference>);
const storedUrl: string = buildStoredUrl(<endpoint>, VERIFY_URL.PROD, id, key);
const {ttl} = await uploadDocument(<endpoint>,  <apiKey>, <document>, id, <reference>);

Tip: To avoid having to repeatedly provide the api-transient-storage gateway endpoint, apiKey, and the verify.gov.sg subdomain ('https://dev.verify.gov.sg' or 'https://www.verify.gov.sg') evertime you invoke the helper functions, you can bind those arguments.

In the tsconfig.json file, remember to set "strictBindCallApply": true to get type checking for the bounded function.

import { getQueueNumber as _getQueueNumber } from "@notarise-gov-sg/transient-storage-lib";

const getQueueNumber = _getQueueNumber.bind(null, <endpoint>, <apiKey>);
const {id, key} = await getQueueNumber(<reference>);

Class way

import { TransientStorageService, TransientStorageServiceImpl, VERIFY_URL } from "@notarise-gov-sg/transient-storage-lib";

const transientStorageService: TransientStorageServiceImpl = new TransientStorageService(<endpoint>, <apiKey>, VERIFY_URL.PROD);

const {id, key} = transientStorageService.getQueueNumber(<reference>);
const storedUrl = transientStorageService.buildStoredUrl(id, key);
const {ttl} = await transientStorageService.uploadDocument(<document>, id, <reference>);

To do all the above in a single line

Function way

import { handleDocumentStorage as _handleDocumentStorage, VERIFY_URL } from "@notarise-gov-sg/transient-storage-lib";\
export const handleDocumentStorage = _handleDocumentStorage.bind(null, <endpoint>, <apiKey>, VERIFY_URL.PROD);
const {ttl, storedUrl} = handleDocumentStorage(<reference>, <document>);

Class way

import { TransientStorageService, TransientStorageServiceImpl, VERIFY_URL } from "@notarise-gov-sg/transient-storage-lib";

const transientStorageService: TransientStorageServiceImpl = new TransientStorageService(<endpoint>, <apiKey>, VERIFY_URL.PROD);
const {ttl, storedUrl} = transientStorageService.handleDocumentStorage(<reference>, <document>);

3. To enable debugging

To view the logs produced by this library during run time, append transient-storage-lib:* to the DEBUG env variable, e.g.

DEBUG='api-notarize-healthcerts:*,transient-storage-lib:*'

If you are using the debug npm module, you can append transient-storage-lib:* to the DEBUG env variable programatically like so

import debug from "debug";

debug.enable("api-notarize-healthcerts:*,transient-storage-lib:*");     // append transient-storage-lib:*
const logger = debug("api-notarize-healthcerts");

Readme

Keywords

none

Package Sidebar

Install

npm i @notarise-gov-sg/transient-storage-lib

Weekly Downloads

2

Version

0.3.6

License

ISC

Unpacked Size

29.8 kB

Total Files

12

Last publish

Collaborators

  • notarise-david
  • notarise-bot
  • hjunyuan
  • causztic