From 2e613daa1b9a32c0714709fa4f17f24184b1c6f8 Mon Sep 17 00:00:00 2001 From: Sorrel Bri Date: Sun, 10 May 2020 17:08:13 -0700 Subject: [PATCH] patch seeds without hardcoded ids to ensure auto-increment --- packages/server/data/seeds/01_room.js | 4 +- packages/server/data/seeds/02_timeSetting.js | 2 +- packages/server/data/seeds/03_user.js | 8 +-- packages/server/data/seeds/04_game.js | 74 ++++++++++++-------- packages/server/data/seeds/05_message.js | 30 ++++++-- packages/server/data/seeds/06_move.js | 31 +++++--- 6 files changed, 96 insertions(+), 53 deletions(-) diff --git a/packages/server/data/seeds/01_room.js b/packages/server/data/seeds/01_room.js index 348a09a..cd5f30a 100644 --- a/packages/server/data/seeds/01_room.js +++ b/packages/server/data/seeds/01_room.js @@ -5,8 +5,8 @@ exports.seed = function(knex) { .then(function () { // Inserts seed entries return knex('room').insert([ - {id: 1, name: 'main', description: 'A general place to play Go'}, - {id: 2, name: 'private', description: 'A private place to play Go', private: true}, + {name: 'main', description: 'A general place to play Go'}, + {name: 'private', description: 'A private place to play Go', private: true}, ]); }); }; diff --git a/packages/server/data/seeds/02_timeSetting.js b/packages/server/data/seeds/02_timeSetting.js index d209428..606d350 100644 --- a/packages/server/data/seeds/02_timeSetting.js +++ b/packages/server/data/seeds/02_timeSetting.js @@ -5,7 +5,7 @@ exports.seed = function(knex) { .then(function () { // Inserts seed entries return knex('time_setting').insert([ - {id: 1, main_time: 'untimed', time_period: 1, period_length: 0, overtime: 'untimed', overtime_period: 0, overtime_length: 0}, + {main_time: 'untimed', time_period: 1, period_length: 0, overtime: 'untimed', overtime_period: 0, overtime_length: 0}, ]); }); }; \ No newline at end of file diff --git a/packages/server/data/seeds/03_user.js b/packages/server/data/seeds/03_user.js index ed39e33..a074483 100644 --- a/packages/server/data/seeds/03_user.js +++ b/packages/server/data/seeds/03_user.js @@ -10,9 +10,9 @@ exports.seed = async function(knex) { .then(async function () { const hashedPassword = await hashPassword(password); // Inserts seed entries - return knex('user').insert([ - {id: 2, username: 'user-one', email: email, password: hashedPassword, admin: true}, - {id: 3, username: 'user-two', email: `2${email}`, password: hashedPassword, admin: true}, - ]); + return knex('user').returning('*').insert([ + {username: 'user-one', email: email, password: hashedPassword, admin: true}, + {username: 'user-two', email: `2${email}`, password: hashedPassword, admin: true}, + ]).then(entries => console.log({success: 'user', entries})); }); }; \ No newline at end of file diff --git a/packages/server/data/seeds/04_game.js b/packages/server/data/seeds/04_game.js index 698633c..1b93fa6 100644 --- a/packages/server/data/seeds/04_game.js +++ b/packages/server/data/seeds/04_game.js @@ -1,33 +1,49 @@ -exports.seed = function(knex) { +exports.seed = async function(knex) { // Deletes ALL existing entries - return knex('game').del() - .then(function () { + return await knex('game').del() + .then(async function () { // Inserts seed entries - return knex('game').insert([ - { - id: 1, date: new Date(), - application: 'node-go', application_version: '0.1.0', - player_black: 'user-one', player_white: 'user-two', - player_black_rank: 'UR', player_white_rank: 'UR', - user_black: 2, user_white: 3, - room: 1, time_setting: 1, open: false - }, - { - id: 2, date: new Date(), - application: 'node-go', application_version: '0.1.0', - player_black: 'user-one', player_black_rank: 'UR', - user_black: 2, - room: 1, time_setting: 1, open: true - }, - { - id: 3, date: new Date('1971-05-06'), - application: 'node-go', application_version: '0.1.0', - player_black: 'Ishida Yoshio', player_black_rank: 'D7', - player_white: 'Rin Kaiho', player_white_rank: 'D9', - room: 1, time_setting: 1, open: false, - event: '', round: 2, win_type: 'B+', score: 1.5 - } - ]); - }); + await knex('user') + .select('id') + .orderBy('id') + .whereIn('username', ['user-one', 'user-two']) + .then(async ([userOne, userTwo]) => { + const res = await knex('room') + .select('id') + .where({name: 'main'}) + .then(([room]) => { + console.log('inserting') + return knex('game').insert( + [ + { + date: new Date(), + application: 'node-go', application_version: '0.1.0', + player_black: 'user-one', player_white: 'user-two', + player_black_rank: 'UR', player_white_rank: 'UR', + user_black: userOne.id, user_white: userTwo.id, + room: room.id, open: false + }, + { + date: new Date(), + application: 'node-go', application_version: '0.1.0', + player_black: 'user-one', player_black_rank: 'UR', + user_black: userTwo.id, + room: room.id, open: true + }, + { + date: new Date('1971-05-06'), + application: 'node-go', application_version: '0.1.0', + player_black: 'Ishida Yoshio', player_black_rank: 'D7', + player_white: 'Rin Kaiho', player_white_rank: 'D9', + room: room.id, open: false, + event: '', round: 2, win_type: 'B+', score: 1.5 + } + ], ['*'] + ) + .then(res => res) + .catch(e => {console.log('error'); console.log(e)}) + }).then(entries => {console.log({success: 'game', entries})}) + }); + }) }; \ No newline at end of file diff --git a/packages/server/data/seeds/05_message.js b/packages/server/data/seeds/05_message.js index e1af1cc..4bc6ac9 100644 --- a/packages/server/data/seeds/05_message.js +++ b/packages/server/data/seeds/05_message.js @@ -1,11 +1,27 @@ -exports.seed = function(knex) { +exports.seed = async function(knex) { // Deletes ALL existing entries - return knex('message').del() - .then(function () { + return await knex('message').del() + .then(async function () { // Inserts seed entries - return knex('message').insert([ - {id: 1, content: 'Hey! Welcome to the general room!', room: 1, user: 2} - ]); - }); + await knex('room') + .where({name: 'main'}) + .then(async ([room]) => await knex('user') + .where({username: 'user-two'}) + .then(async ([user]) => { + const res = await knex('message') + .returning('*') + .insert( + [ + {content: 'Hey! Welcome to the general room!', room: room.id, user: user.id} + ] + ) + .then(entries => {console.log({success: 'message', entries}); return res;}) + .catch(e => e) + return res; + } + ) + .then(() => {}) + ).then(() => {}) + }).then(() => {}) }; \ No newline at end of file diff --git a/packages/server/data/seeds/06_move.js b/packages/server/data/seeds/06_move.js index 567ebd7..399d5ed 100644 --- a/packages/server/data/seeds/06_move.js +++ b/packages/server/data/seeds/06_move.js @@ -1,14 +1,25 @@ -exports.seed = function(knex) { +exports.seed = async function(knex) { // Deletes ALL existing entries - return knex('move').del() - .then(function () { + return await knex('move').del() + .then(async function () { // Inserts seed entries - return knex('move').insert([ - {id: 1, player: 'black', point_x: 3, point_y: 3, number: 1, game_record: true, game: 1, prior_move: null}, - {id: 2, player: 'white', point_x: 15, point_y: 15, number: 2, game_record: true, game: 1, prior_move: 1}, - {id: 3, player: 'black', point_x: 4, point_y: 15, number: 3, game_record: true, game: 1, prior_move: 2}, - {id: 4, player: 'white', point_x: 15, point_y: 4, number: 4, game_record: true, game: 1, prior_move: 3}, - ]); - }); + await knex('game') + .where({player_black: 'user-one', player_white: 'user-two'}) + .then(async ([game]) => await knex('move') + .returning('*') + .insert( + [ + {player: 'black', point_x: 3, point_y: 3, number: 1, game_record: true, game: game.id, prior_move: null}, + {player: 'white', point_x: 15, point_y: 15, number: 2, game_record: true, game: game.id, prior_move: 1}, + {player: 'black', point_x: 4, point_y: 15, number: 3, game_record: true, game: game.id, prior_move: 2}, + {player: 'white', point_x: 15, point_y: 4, number: 4, game_record: true, game: game.id, prior_move: 3}, + ] + ) + .then(res => {console.log(res); return res;}) + .catch(e => {console.log(e); return e;}) + ) + .then(() => {}) + }) + .then(() => {}) };