@heathmont/ih-ngiw v1.0.2
ih-ngiw
Hub88 Next Generation Integration Wrapper
Usage
First of all you need to install package:
npm install --save @heathmont/ih-ngiwThen 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.