1.0.1 • Published 2 years ago

lib-dynamoitemcounter v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

lib-dynamoitemcounter

Nodejs module that provides functionality to increment, decrement and get counter values for each dynamodb entity in Albert

How to use the module

  1. Instantiate the db-itemcounter function with the name of the dynamodb table name as below
let counterObject= require('./index.js')('albert-dev');

or after installing the node module through npm install use

let counterObject= require('lib-dbitemcounter')('albert-dev');
  • IMPORTANT - always get the table name from the .env file variable and avoid hardcoding table name.
  1. then use getCount function to get the count of the specific module, category for a tenantId
console.log('getCount is ', await counterObject.getCount('TEN0','INV', 'A'));
getCount is 0
  • If there is no counter record for the given valid tenant, entity (and category) combination initially, 0 will be returned
  1. use increment function to increment the counter by value 1
console.log('increment is ', await myTest.increment('TEN0','INV', 'A'));
increment is 1
  • After the first increment function call on a valid entity (and category combination), the return value is 1 and gets incremented sequentially by 1 after each following call.
  1. use decrement function to decrement the counter by value 1 and return the resultant value
console.log('decrement is ', await myTest.decrement('TEN0','INV', 'A'));
decrement is 0
  • a counter for a valid entity (and category combination) can be decremented till 0, below which error would be thrown upon calling decrement.
console.log('getCount is ', await myTest.getCount('TEN0','DAC'));
console.log('decrement is ', await myTest.decrement('TEN0','DAC'));
console.log('getCount is ', await myTest.getCount('TEN0','DAC'));

getCount is  0
decrement is  { error: 'The conditional request failed : Trying to decrement below 0 / Count does not exist for the given combination'}
getCount is  0
  • If the specific entity or category combination does not exist, error is thrown by all functions
console.log('getCount is ', await myTest.getCount('TEN0','DACX'));
console.log('decrement is ', await myTest.decrement('TEN0','INV', 'Q'));
console.log('getCount is ', await myTest.increment('TEN0','HHH'));

getCount is  { error: 'Valid TenantId / Entity required' }
decrement is  { error: 'The Entity / Category combination is invalid' }
getCount is  { error: 'Valid TenantId / Entity required' }
  • Every function will take in 3 parameters

myTest.getCount(tenantId, entity, category) 1. tenantId - TEN0/TEN1 (mandatory) 2. entity - name of the entity (module) - namely like COM, INV, LOC etc (mandatory) 3. category - name of category within the entity as specified in the category.json file (non mandatory)

  • You can check for existing list of categories inside an entity, include a new entity, and its sub categories inside the category.json in the module folder.

#Database Counter Record format

image

1.0.1

2 years ago

1.0.0

2 years ago