node-go/packages/server/data/queries/move.js

56 lines
1.2 KiB
JavaScript

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",
"prior_move",
"placement",
"id"
)
.orderBy("number")
.then((record) =>
record.map(({ player, point_x, point_y, id, prior_move }) => ({
player,
pos: { x: point_x, y: point_y },
id,
prior: prior_move,
}))
);
// .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[0]);
} catch (e) {
result = e;
} finally {
return result;
}
};
module.exports = {
findGameRecord,
addMove,
};