@heathmont/ih-ngiw

Hub88 Next Generation Integration Wrapper

Usage no npm install needed!

<script type="module">
  import heathmontIhNgiw from 'https://cdn.skypack.dev/@heathmont/ih-ngiw';
</script>

README

ih-ngiw

Hub88 Next Generation Integration Wrapper

Usage

First of all you need to install package:

npm install --save @heathmont/ih-ngiw

Then you can include your it in your own script:

const Ngiw = require("@heathmont/ih-ngiw");

You should already have public and private key for checking requests from Hub88, in case you don't read about it here: https://github.com/coingaming/Hub88-Examples.

Constructor accepts port and publicKey, privateKey params:

const path = require("path");

const w = new Ngiw({
  port: 3000,
  publicKey: path.resolve(__dirname, "priv/demo_pub.pem"),
  privateKey: path.resolve(__dirname, "priv/demo_priv.pem")
});

You need to implement 4 callbacks, for example:

const balance = req => {
  const user = db.findUserBySession(req.token);
  return { user: user.name, balance: user.balance, currency: "EUR" };
}

const win = req => {
  const game = db.winGame(req.transaction_uuid);
  return { user: game.user, balance: game.balance, currency: "EUR" };
}

const rollback = req => {
  const transaction = db.rollbackTransaction(req.transaction_uuid);
  return {
    user: transaction.user,
    balance: transaction.balance,
    currency: "EUR"
  };
}

const bet = req => {
  const transaction = db.betTransaction(req.transaction_uuid);
  return {
    user: transaction.user,
    balance: transaction.balance,
    currency: "EUR"
  };
}

w.balance(balance);
w.win(win);
w.rollback(rollback);
w.bet(bet);
w.start();

Every callback called with different params, you can find description here in body section: https://app.swaggerhub.com/apis/hub88/hub88/2.0#/Wallet%20API. For example balance callback called with token and game_id (you should not care about request_uuid, it handled internally).

In every callback you should return user, balance, and currency fields. Or if something goes wrong your can return status field, you can grab all statuses from Ngiw.STATUS_CODES. For example:

const { RS_ERROR_USER_DISABLED } = Ngiw.STATUS_CODES;

w.balance(res => {
  return { status: RS_ERROR_USER_DISABLED };
})

More compilcated example can be found in example/ folder.