const knex = require("../db"); const gameDetailSelect = [ "game.id", "application", "application_version", "board_size", "komi", "handicap", "open", "win_type", "player_black", "player_black_rank", "player_white", "player_white_rank", "captures_black", "captures_white", "score", "win_type", "description", "event", "round", "name", "room", ]; const timeSettingSelect = [ "main_time", "time_period", "period_length", "overtime", "overtime_period", "overtime_length", ]; const gameOverviewSelect = [ "id", "board_size", "komi", "handicap", "open", "win_type", "player_black", "player_black_rank", "player_white", "player_white_rank", ]; const findGameById = async function (gameId) { const selection = gameDetailSelect.concat(timeSettingSelect); const game = await knex .from("game") .select(selection) .where({ "game.id": gameId }) .leftJoin("time_setting", function () { this.on("time_setting.id", "=", "game.time_setting"); }); return game[0]; }; const findGameByRoom = async (roomId) => { const games = await knex("game") .where({ room: roomId }) .select(gameOverviewSelect); return games; }; const insertGame = async (game) => {}; const endGame = async ({ id }) => { const game = await knex(game).where({ id: id }).update( { win_type: winType, score: score, captures_black: capturesBlack, captures_white: capturesWhite, } // ["id"] ); return game; }; module.exports = { findGameById, findGameByRoom, insertGame, endGame, };