Skip to content

eden-js/balance

Repository files navigation

EdenJS - Balance

TravisCI Issues License Awesome Discord

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published