timhaley94/holdem

View on GitHub
server/src/api/views/game/index.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
const Renderer = require('../renderer');

const Purse = Renderer.wrap({
  fields: ['bankroll', 'wagered'],
  mapping: {
    bankroll: (v) => parseInt(v, 10),
    wagered: (v) => parseInt(v, 10),
  },
});

const Player = Renderer.wrap({
  fields: [
    'userId',
    'hasFolded',
    'purse',
    'pocketCards',
  ],
  permissions: {
    // pocketCards: ({ userId }, context) => (
    //   userId === context.userId
    // ),
  },
  mapping: {
    purse: Purse,
  },
});

const Round = Renderer.wrap({
  fields: [
    'players',
    'currentPlayer',
    'communityCards',
    'stage',
    'isComplete',
  ],
  mapping: {
    players: (players, context) => (
      players.map((p) => Player(p, context))
    ),
  },
});

const Game = Renderer.wrap({
  fields: ['round'],
  mapping: {
    round: Round,
  },
});

module.exports = Game;