@emdgroup/metering-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Platform Core Components: Metering SDK

Table of Contents

Installation

Install globally...
npm install -g @emdgroup/metering-sdk

...or as a local dependency
yarn add @emdgroup/metering-sdk

Getting Started

See our OpenAPI docs for response descriptions and further information.

Typescript examples

import { KeysApi } from '@emdgroup/metering-sdk';

const keysApi = new KeysApi(undefined, basePath);
const txApi = new TransactionsApi(undefined, basePath);

const accessToken = process.env.METERING_ACCESS_TOKEN || '';
const options = {headers: {Authorization: `Bearer ${accessToken}`}};

POST /keys

const { data } = await keysApi.createKey({
    keyId: 'someKeyId',
    resources: []}, options);

PUT /keys/{keyId}

const { data } = await keysApi.resetKey('someKeyId', {
    resources: [
        { resourceId: 'resourceId1', limit: 100 },
        { resourceId: 'resourceId2', accessUntilDate: '2030-01-01' }
    ]}, options);

GET /keys/{keyId}

const { data } = await keysApi.describeKey('someKeyId', options);
console.log(data);
/**
{
  keyId: 'someKeyId',
  resources: [{
    resourceId: 'resourceId2',
    pending: 0,
    confirmed: 0,
    accessUntilDate: '2030-01-01T00:00:00.000Z'
  }, {
    resourceId: 'resourceId1',
    pending: 0,
    confirmed: 0,
    limit: 100
  }]
}
*/

POST /transactions

const { data: { transactionId } } = await txApi.createTransaction({
    keyId: 'someKeyId',
    resourceId: 'resourceId1',
    quantity: 10}, options);

GET /transactions/{transactionId}

const { data: transaction } = await txApi.describeTransaction(transactionId, options);
console.log(transaction);
/**
{
  keyId: 'someKeyId',
  resourceId: 'resourceId1',
  quantity: 10,
  transactionId: <transactionId>,
  status: 'PENDING',
  expirationDate: '2021-03-24T23:42:31.444Z'
}
*/

POST /transactions/{transactionId}

await txApi.commitTransaction(transactionId, options);

PUT /transactions/{transactionId}

await txApi.updateTransaction(transactionId, { quantity: 5 }, options);

DELETE /transactions/{transactionId}

await txApi.cancelTransaction(transactionId, options);

Readme

Keywords

none

Package Sidebar

Install

npm i @emdgroup/metering-sdk

Weekly Downloads

2

Version

1.0.1

License

Apache-2.0

Unpacked Size

100 kB

Total Files

18

Last publish

Collaborators

  • juaquins
  • monken