2020-01-21 07:05:55 +00:00
|
|
|
const knex = require('../db');
|
|
|
|
|
2020-01-24 08:07:40 +00:00
|
|
|
const gameDetailSelect = [
|
|
|
|
'game.id', 'application', 'application_version',
|
|
|
|
'board_size', 'komi', 'handicap', 'open', 'win_type',
|
|
|
|
'player_black', 'player_black_rank', 'player_white', 'player_white_rank',
|
2020-01-30 01:01:46 +00:00
|
|
|
'captures_black', 'captures_white', 'score', 'win_type',
|
2020-01-24 08:07:40 +00:00
|
|
|
'description', 'event', 'round', 'name', 'room'
|
|
|
|
]
|
|
|
|
|
|
|
|
const timeSettingSelect = [
|
|
|
|
'main_time', 'time_period', 'period_length', 'overtime', 'overtime_period', 'overtime_length'
|
|
|
|
]
|
|
|
|
|
2020-01-23 22:46:49 +00:00
|
|
|
const gameOverviewSelect = [
|
2020-01-24 05:25:08 +00:00
|
|
|
'id', 'board_size', 'komi', 'handicap', 'open', 'win_type',
|
2020-01-23 22:46:49 +00:00
|
|
|
'player_black', 'player_black_rank', 'player_white', 'player_white_rank'
|
|
|
|
]
|
|
|
|
|
2020-01-24 08:07:40 +00:00
|
|
|
const findGameById = async function (gameId) {
|
|
|
|
const selection = gameDetailSelect.concat(timeSettingSelect);
|
2020-01-24 00:14:38 +00:00
|
|
|
|
2020-01-24 08:07:40 +00:00
|
|
|
const game = await knex
|
|
|
|
.from('game')
|
|
|
|
.select(selection)
|
|
|
|
.where({'game.id': gameId})
|
|
|
|
.leftJoin('time_setting', function() { this.on('time_setting.id', '=', 'game.time_setting')})
|
|
|
|
|
2020-01-24 05:25:08 +00:00
|
|
|
return game[0];
|
2020-01-21 07:05:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const findGameByRoom = async (roomId) => {
|
2020-01-24 00:14:38 +00:00
|
|
|
const games = await knex('game')
|
|
|
|
.where({'room': roomId})
|
2020-01-23 22:46:49 +00:00
|
|
|
.select(gameOverviewSelect);
|
2020-01-24 00:14:38 +00:00
|
|
|
|
|
|
|
return games;
|
2020-01-21 07:05:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const insertGame = async (game) => {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
findGameById,
|
|
|
|
findGameByRoom,
|
|
|
|
insertGame
|
|
|
|
}
|