@edenjs/balance
v1.1.5
Published
[![TravisCI](https://travis-ci.com/eden-js/balance.svg?branch=master)](https://travis-ci.com/eden-js/balance) [![Issues](https://img.shields.io/github/issues/eden-js/balance.svg)](https://github.com/eden-js/balance/issues) [![License](https://img.shields.
Downloads
17
Readme
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
// load model
const BalanceEntry = model('balanceEntry');
// get first entry
const entry = await BalanceEntry.findOne();
// data used in frontend
const data = await entry.sanitise();
Hooks
balance.change
Usage Usage
Balance change hook allows us to prevent/change a balance transaction on a user based on parameters.
Example
this.eden.pre('balance.change', (data) => {
// extract variables
const { user, direction, amount, payment, current } = data;
// prevent balance change by setting prevent : true
data.prevent = true;
data.complete = true;
});
Helpers
balance
Usage
Balance helper applies balance changes to users automatically.
Example
// user model
const User = model('user');
// balance helper
const balanceHelper = helper('balance');
const balanceUser = await User.findOne();
const didAdd = await balanceHelper.add(balanceUser, 10); // add 10 to users account
const didSubtract = await balanceHelper.subtract(balanceUser, 10); // subtract 10 from users account