2.0.1 • Published 2 years ago

balroggollum v2.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

codecov

api-proxy-v2

An npm module to integrate ClickBit backend.

This repository contains both private and public content. The module itself is public, but its assets are not at the moment.

Key concepts

  1. expose static methods to implement clickbit games
  2. 100% tested
  3. Browser and Node compatibility
  4. UI free

Quick start

import {configure, checkBrowser} from "@clickbit/api-proxy-v2"

import * as roulette from './roulette'

;(async () => {

  try {
    const config = configure({
      serviceUrl: "https://devint.tazpool.com/",
      token: "DEV-1000", // replace 1000 with your userId
      gameId: 2,
      userId: 1000,      // replace 1000 with your userId
      username: "test-only",
      playMode: "real",
      platform: "sportsbook",
      lobbyUrl: "https://www.google.com",
      lang: "en",
      moneyFormat: "0,0[.]00",
    })

    // extract values to create the payload for checkBrowser and newTable
    const { serviceUrl, playMode, token, gameId, browserId, platform } = config

    // invoke the checkBrowser (void function that must not throw)
    await checkBrowser({serviceUrl, playMode, token, gameId, browserId})

    console.info('CheckBrowser OK')

    // invoke newTable to obtain the tableId (must not throw)
    const tableId = await newTable({serviceUrl, playMode, token, gameId, browserId})

    console.info(`Table ID is "${tableId}"`)

    const limits = await getTableLimits({ serviceUrl, playMode, token, gameId, browserId, platform, tableId })

    console.dir(limits)

    // Bet Even, Odd and 0 on European roulette.
    const bets: roulette.IBet[] = [
      { name: 'Nr0', value: 1 },
      { name: 'GroupOdd', value: 1 },
      { name: 'GroupEven', value: 1 },
    ]

    const result: roulette.ISpin = await roulette.spin({ serviceUrl, playMode, token, gameId, tableId }, bets)

    console.dir(result)

  } catch ({message}) {
    console.log(`could not start the game: ${message}`)
  }
})()

The above code initializes the configuration using hardcoded values. However, if the property is omitted, for example, the gameId or the serviceUrl or any other, the configure function, using the built-in querystring-extractor, will try to auto-fill the values using the context.