EdenJS - Balance
User Balance base logic component for EdenJS
@edenjs/balance
creates user balance logic, users will have the field balance
which will hold an on-site balance.
Setup
Install
npm i --save @edenjs/balance
Configure
No configuration is required for this module
Models
BalanceEntry
Usage
BalanceEntry model consits of a single entry for each change on a users balance.
Example
const BalanceEntry = model('balanceEntry');
const entry = await BalanceEntry.findOne();
const data = await entry.sanitise();
Hooks
Balance change hook allows us to prevent/change a balance transaction on a user based on parameters.
Example
this.eden.pre('balance.change', (data) => {
const { user, direction, amount, payment, current } = data;
data.prevent = true;
data.complete = true;
});
Helpers
Balance helper applies balance changes to users automatically.
Example
const User = model('user');
const balanceHelper = helper('balance');
const balanceUser = await User.findOne();
const didAdd = await balanceHelper.add(balanceUser, 10);
const didSubtract = await balanceHelper.subtract(balanceUser, 10);