From 5eca1281108d171e6bcc606cb6a95939f0ba8377 Mon Sep 17 00:00:00 2001 From: sorrelbri Date: Wed, 1 Jul 2020 10:54:32 -0700 Subject: [PATCH] add placement boolean to Move migration, add placement and prior_move selects to move query --- .../data/migrations/20200120230921_move.js | 25 ++++----- packages/server/data/queries/move.js | 53 +++++++++++-------- 2 files changed, 45 insertions(+), 33 deletions(-) diff --git a/packages/server/data/migrations/20200120230921_move.js b/packages/server/data/migrations/20200120230921_move.js index c5543d0..19c197e 100644 --- a/packages/server/data/migrations/20200120230921_move.js +++ b/packages/server/data/migrations/20200120230921_move.js @@ -1,17 +1,18 @@ -const players = ['white', 'black'] +const players = ["white", "black"]; -exports.up = knex => { - return knex.schema.createTable("move", table => { - table.increments('id').primary(); - table.enu('player', players).notNullable(); - table.integer('point_x').notNullable(); - table.integer('point_y').notNullable(); - table.integer('number').notNullable(); - table.boolean('game_record').notNullable().default(true); +exports.up = (knex) => { + return knex.schema.createTable("move", (table) => { + table.increments("id").primary(); + table.enu("player", players).notNullable(); + table.integer("point_x").notNullable(); + table.integer("point_y").notNullable(); + table.integer("number").notNullable(); + table.boolean("game_record").notNullable().default(true); + table.boolean("placement").notNullable().default(false); - table.integer('game').references('id').inTable('game').notNullable(); - table.integer('prior_move').references('id').inTable('move'); + table.integer("game").references("id").inTable("game").notNullable(); + table.integer("prior_move").references("id").inTable("move"); }); }; -exports.down = knex => knex.schema.dropTableIfExists("move"); +exports.down = (knex) => knex.schema.dropTableIfExists("move"); diff --git a/packages/server/data/queries/move.js b/packages/server/data/queries/move.js index cbe69fe..a8c79eb 100644 --- a/packages/server/data/queries/move.js +++ b/packages/server/data/queries/move.js @@ -1,36 +1,47 @@ -const knex = require('../db'); +const knex = require("../db"); const findGameRecord = async (gameId) => { - return await knex('move') - .where({ 'game': gameId, 'game_record': true }) - .select('player', 'point_x', 'point_y', 'number') - .orderBy('number') - .then(record => record.map(({player, point_x, point_y}) => ({player, pos: { x: point_x, y: point_y } }) )) + return await knex("move") + .where({ game: gameId, game_record: true }) + .select("player", "point_x", "point_y", "number", "prior_move", "placement") + .orderBy("number") + .then((record) => + record.map(({ player, point_x, point_y }) => ({ + player, + pos: { x: point_x, y: point_y }, + })) + ); // .then(res => res) -} +}; // id: 1, player: 'black', point_x: 3, point_y: 3, number: 1, game_record: true, game: 1, prior_move: null const addMove = async ({ gameId, player, x, y, gameRecord, priorMove }) => { + // ! priorMove must be FK not move number const number = priorMove + 1; let result; - try { - result = await knex('move') - .returning('*') - .insert({ game: gameId, player, point_x: x, point_y: y, number, game_record: gameRecord, prior_move: priorMove }) - .then(res => res); - } - catch (e) { - result = e - } - finally { + try { + result = await knex("move") + .returning("*") + .insert({ + game: gameId, + player, + point_x: x, + point_y: y, + number, + game_record: gameRecord, + prior_move: priorMove, + }) + .then((res) => res); + } catch (e) { + result = e; + } finally { console.log(result); return result; } - -} +}; module.exports = { findGameRecord, - addMove -} \ No newline at end of file + addMove, +};