diff --git a/data/friendship.js b/data/friendship.js new file mode 100644 index 0000000..f6443a2 --- /dev/null +++ b/data/friendship.js @@ -0,0 +1,24 @@ +const casual = require('casual') +const userData = require('./user') + +const statusArray = ['ACCEPTED', 'PENDING', 'DECLINED'] + + +casual.define('friendship', (requestorId, requesteeId, status) => ({ + id: casual.uuid, + requestorId, + requesteeId, + status, +})) + + +const friendshipData = [] + +for (let i = 0; i < 20; ++i) { + const requestorId = casual.random_element(userData).id + const requesteeId = casual.random_element(userData).id + const status = statusArray[casual.integer(0, 2)] + friendshipData.push(casual.friendship(requestorId, requesteeId, status)) +} + +module.exports = friendshipData diff --git a/data/journalEntry.js b/data/journalEntry.js new file mode 100644 index 0000000..e688a93 --- /dev/null +++ b/data/journalEntry.js @@ -0,0 +1,19 @@ +const casual = require('casual') +const userData = require('./user') + +casual.define('journalEntry', userId => ({ + id: casual.uuid, + userId, + date: casual.date(), + text: casual.text, +})) + + +const journalData = [] + +for (let i = 0; i < 20; ++i) { + const userId = casual.random_element(userData).id + journalData.push(casual.journalEntry(userId)) +} + +module.exports = journalData diff --git a/data/message.js b/data/message.js new file mode 100644 index 0000000..135abd3 --- /dev/null +++ b/data/message.js @@ -0,0 +1,21 @@ +const casual = require('casual') +const userData = require('./user') + +casual.define('message', (senderId, receiverId) => ({ + id: casual.uuid, + senderId, + receiverId, + createdAt: casual.moment, + content: casual.text, +})) + + +const messageData = [] + +for (let i = 0; i < 20; ++i) { + const senderId = casual.random_element(userData).id + const receiverId = casual.random_element(userData).id + messageData.push(casual.message(senderId, receiverId)) +} + +module.exports = messageData diff --git a/data/user.js b/data/user.js index d6fac0c..f9b6a52 100644 --- a/data/user.js +++ b/data/user.js @@ -6,9 +6,10 @@ const password = '$2a$10$rQEY9CNl4OC.UtiyRgKnZeW0KaWnEANMKAxfIpNDQCgiCybm3G1fy' casual.define('user', () => ({ id: casual.uuid, email: casual.email, + firstName: casual.first_name, + lastName: casual.last_name, + dob: casual.date(), password, - created_at: casual.moment, - updated_at: casual.moment, })) diff --git a/sample.env b/sample.env deleted file mode 100644 index 05a6f30..0000000 --- a/sample.env +++ /dev/null @@ -1,6 +0,0 @@ -DB_HOST=abcde.abcde -DB_DATABASE=abcde -DB_USER=abcde -DB_PASSWORD=abcde -DB_PORT=5432 -NODE_ENV=development \ No newline at end of file diff --git a/src/db/migrations/20191123190223_user.js b/src/db/migrations/20200121104232_users.js similarity index 56% rename from src/db/migrations/20191123190223_user.js rename to src/db/migrations/20200121104232_users.js index 3d9e206..c594ecd 100644 --- a/src/db/migrations/20191123190223_user.js +++ b/src/db/migrations/20200121104232_users.js @@ -1,6 +1,4 @@ -const { createTableIfNotExists } = require('../helpers') - -exports.up = async knex => createTableIfNotExists(knex, 'users', table => { +exports.up = async knex => knex.schema.createTable('users', table => { table .uuid('id') .notNullable() @@ -12,7 +10,22 @@ exports.up = async knex => createTableIfNotExists(knex, 'users', table => { .unique() .notNullable() - table.string('password').notNullable() + table + .string('firstName') + .notNullable() + + table + .string('lastName') + .notNullable() + + table + .date('dob') + .notNullable() + + table + .string('password') + .notNullable() + table.timestamp('createdAt').defaultTo(knex.fn.now()) table.timestamp('updatedAt').defaultTo(knex.fn.now()) diff --git a/src/db/migrations/20200121110649_friendships.js b/src/db/migrations/20200121110649_friendships.js new file mode 100644 index 0000000..f326960 --- /dev/null +++ b/src/db/migrations/20200121110649_friendships.js @@ -0,0 +1,27 @@ + +exports.up = async knex => knex.schema.createTable('friendships', table => { + table + .uuid('id') + .notNullable() + .primary() + .defaultTo(knex.raw('uuid_generate_v4()')) + + table + .uuid('requestorId') + .references('users.id') + .notNullable() + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table + .uuid('requesteeId') + .references('users.id') + .notNullable() + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table + .enum('status', ['ACCEPTED', 'PENDING', 'DECLINED']) +}) + +exports.down = async knex => knex.schema.dropTableIfExists('friendships') diff --git a/src/db/migrations/20200121111707_journalEntries.js b/src/db/migrations/20200121111707_journalEntries.js new file mode 100644 index 0000000..e1b4af0 --- /dev/null +++ b/src/db/migrations/20200121111707_journalEntries.js @@ -0,0 +1,24 @@ + +exports.up = async knex => knex.schema.createTable('journalEntries', table => { + table + .uuid('id') + .notNullable() + .primary() + .defaultTo(knex.raw('uuid_generate_v4()')) + + table + .uuid('userId') + .references('users.id') + .notNullable() + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table + .date('date') + .notNullable() + + table + .text('text') +}) + +exports.down = async knex => knex.schema.dropTableIfExists('journalEntries') diff --git a/src/db/migrations/20200121112352_messages.js b/src/db/migrations/20200121112352_messages.js new file mode 100644 index 0000000..1adbd9f --- /dev/null +++ b/src/db/migrations/20200121112352_messages.js @@ -0,0 +1,31 @@ + +exports.up = async knex => knex.schema.createTable('messages', table => { + table + .uuid('id') + .notNullable() + .primary() + .defaultTo(knex.raw('uuid_generate_v4()')) + + table + .uuid('senderId') + .references('users.id') + .notNullable() + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table + .uuid('receiverId') + .references('users.id') + .notNullable() + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table + .timestamp('createdAt').defaultTo(knex.fn.now()) + .notNullable() + + table + .text('content') +}) + +exports.down = async knex => knex.schema.dropTableIfExists('messages') diff --git a/src/db/seeds/01_friendships.js b/src/db/seeds/01_friendships.js new file mode 100644 index 0000000..0f1e01a --- /dev/null +++ b/src/db/seeds/01_friendships.js @@ -0,0 +1,4 @@ +const friendData = require('../../../data/friendship') + +exports.seed = knex => knex('friendships').del() + .then(() => knex('friendships').insert(friendData)) diff --git a/src/db/seeds/02_journalEntries.js b/src/db/seeds/02_journalEntries.js new file mode 100644 index 0000000..1a4cf5c --- /dev/null +++ b/src/db/seeds/02_journalEntries.js @@ -0,0 +1,4 @@ +const journalData = require('../../../data/journalEntry') + +exports.seed = knex => knex('journalEntries').del() + .then(() => knex('journalEntries').insert(journalData)) diff --git a/src/db/seeds/03_messages.js b/src/db/seeds/03_messages.js new file mode 100644 index 0000000..2b8f106 --- /dev/null +++ b/src/db/seeds/03_messages.js @@ -0,0 +1,4 @@ +const messageData = require('../../../data/message') + +exports.seed = knex => knex('messages').del() + .then(() => knex('messages').insert(messageData))