From 0c88460b544fcaa3fc17deb939a2a9b0915f6a1e Mon Sep 17 00:00:00 2001 From: Arjun Patel Date: Wed, 13 Mar 2019 21:22:01 -0700 Subject: [PATCH] basic seed files and restructuring --- .sequelizerc | 8 +- app/config/db.config.js | 20 ++--- .../{config.js => migrations.config.js} | 2 +- .../organization/organization.controller.js | 7 +- .../20190122064034-orgs-default-rating.js | 19 ----- app/migrations/20190125081542-create-user.js | 35 --------- ...dding-stripe-customer-id-to-donor-table.js | 20 ----- .../20190129174646-create-charges.js | 33 --------- ...22133-add-subscription-id-payment-plans.js | 20 ----- app/seeders/20190122053544-base-orgs.js | 48 ------------ {app/models => models}/cause.model.js | 0 {app/models => models}/charge.model.js | 0 {app/models => models}/donor.model.js | 0 {app/models => models}/grant.model.js | 0 .../grantsOrganizations.model.js | 0 {app/models => models}/index.js | 0 {app/models => models}/orgBank.model.js | 0 {app/models => models}/organization.model.js | 0 {app/models => models}/paymentplan.model.js | 0 {app/models => models}/region.model.js | 0 {app/models => models}/user.model.js | 0 .../20190122051334-base-user.js | 16 +++- .../20190122052354-base-causes.js | 4 +- .../20190122053404-base-regions.js | 1 - seeders/20190122053544-base-orgs.js | 73 +++++++++++++++++++ .../20190122054316-base-grants.js | 0 26 files changed, 104 insertions(+), 202 deletions(-) rename app/config/{config.js => migrations.config.js} (95%) delete mode 100644 app/migrations/20190122064034-orgs-default-rating.js delete mode 100644 app/migrations/20190125081542-create-user.js delete mode 100644 app/migrations/20190129172059-adding-stripe-customer-id-to-donor-table.js delete mode 100644 app/migrations/20190129174646-create-charges.js delete mode 100644 app/migrations/20190203022133-add-subscription-id-payment-plans.js delete mode 100644 app/seeders/20190122053544-base-orgs.js rename {app/models => models}/cause.model.js (100%) rename {app/models => models}/charge.model.js (100%) rename {app/models => models}/donor.model.js (100%) rename {app/models => models}/grant.model.js (100%) rename {app/models => models}/grantsOrganizations.model.js (100%) rename {app/models => models}/index.js (100%) rename {app/models => models}/orgBank.model.js (100%) rename {app/models => models}/organization.model.js (100%) rename {app/models => models}/paymentplan.model.js (100%) rename {app/models => models}/region.model.js (100%) rename {app/models => models}/user.model.js (100%) rename {app/seeders => seeders}/20190122051334-base-user.js (53%) rename {app/seeders => seeders}/20190122052354-base-causes.js (79%) rename {app/seeders => seeders}/20190122053404-base-regions.js (96%) create mode 100644 seeders/20190122053544-base-orgs.js rename {app/seeders => seeders}/20190122054316-base-grants.js (100%) diff --git a/.sequelizerc b/.sequelizerc index a03cf42..445766c 100644 --- a/.sequelizerc +++ b/.sequelizerc @@ -1,8 +1,8 @@ const path = require('path'); module.exports = { - 'config': path.resolve('./app/config', 'config.js'), - 'models-path': path.resolve('./app', 'models'), - 'seeders-path': path.resolve('./app', './seeders'), - 'migrations-path': path.resolve('./app', './migrations') + 'config': path.resolve('./app/config', 'migrations.config.js'), + 'models-path': path.resolve('./', 'models'), + 'seeders-path': path.resolve('./', 'seeders'), + 'migrations-path': path.resolve('./', 'migrations') } \ No newline at end of file diff --git a/app/config/db.config.js b/app/config/db.config.js index da03800..b0cb39e 100644 --- a/app/config/db.config.js +++ b/app/config/db.config.js @@ -1,14 +1,14 @@ const Sequelize = require('sequelize'), - DonorModel = require('../models/donor.model.js'), - GrantModel = require('../models/grant.model.js'), - CauseModel = require('../models/cause.model.js'), - RegionModel = require('../models/region.model.js'), - OrganizationModel = require('../models/organization.model.js'), - UserModel = require('../models/user.model.js'), - PaymentPlanModel = require('../models/paymentplan.model'), - ChargeModel = require('../models/charge.model'), - OrgBankModel = require('../models/orgBank.model'), - GrantsOrganizationsModel = require('../models/grantsOrganizations.model'), + DonorModel = require('../../models/donor.model.js'), + GrantModel = require('../../models/grant.model.js'), + CauseModel = require('../../models/cause.model.js'), + RegionModel = require('../../models/region.model.js'), + OrganizationModel = require('../../models/organization.model.js'), + UserModel = require('../../models/user.model.js'), + PaymentPlanModel = require('../../models/paymentplan.model'), + ChargeModel = require('../../models/charge.model'), + OrgBankModel = require('../../models/orgBank.model'), + GrantsOrganizationsModel = require('../../models/grantsOrganizations.model'), associate = require('./associate'); const connection_uri = process.env.JAWSDB_MARIA_URL; diff --git a/app/config/config.js b/app/config/migrations.config.js similarity index 95% rename from app/config/config.js rename to app/config/migrations.config.js index f4f0480..ae09b23 100644 --- a/app/config/config.js +++ b/app/config/migrations.config.js @@ -4,7 +4,7 @@ module.exports = { development: { username: 'root', password: 'water', - database: 'ucharify', + database: 'base', host: 'localhost', dialect: 'mysql' }, diff --git a/app/controllers/organization/organization.controller.js b/app/controllers/organization/organization.controller.js index e12aaf7..0a4e47b 100644 --- a/app/controllers/organization/organization.controller.js +++ b/app/controllers/organization/organization.controller.js @@ -54,11 +54,8 @@ exports.create = async (req, res, next) => { }); // cause or region not found - if (!causes.length) { - await Cause.create({ name: primary_cause }, { transaction }); - } - if (!regions.length) { - await Region.create({ name: primary_region }, { transaction }); + if (!causes.length || !regions.length) { + throw errorMaker(400, `No valid cause or region`); } const saltRounds = await bcrypt.genSaltSync(10); diff --git a/app/migrations/20190122064034-orgs-default-rating.js b/app/migrations/20190122064034-orgs-default-rating.js deleted file mode 100644 index a669009..0000000 --- a/app/migrations/20190122064034-orgs-default-rating.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.changeColumn('organizations', 'rating', { - type: Sequelize.INTEGER, - defaultValue: 5, - allowNull: false - }); - }, - - down: (queryInterface, Sequelize) => { - return queryInterface.changeColumn('organizations', 'rating', { - type: Sequelize.INTEGER, - defaultValue: 0, - allowNull: false - }); - } -}; diff --git a/app/migrations/20190125081542-create-user.js b/app/migrations/20190125081542-create-user.js deleted file mode 100644 index d87af00..0000000 --- a/app/migrations/20190125081542-create-user.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable('users', { - id: { - allowNull: false, - autoIncrement: true, - primaryKey: true, - type: Sequelize.INTEGER - }, - first_name: Sequelize.STRING, - last_name: Sequelize.STRING, - email: { - type: Sequelize.STRING, - validate: { - isEmail: true - }, - allowNull: false - }, - createdAt: { - allowNull: false, - type: Sequelize.DATE, - defaultValue: new Date() - }, - updatedAt: { - allowNull: false, - type: Sequelize.DATE, - defaultValue: new Date() - } - }); - }, - down: (queryInterface, Sequelize) => { - return queryInterface.dropTable('users'); - } -}; diff --git a/app/migrations/20190129172059-adding-stripe-customer-id-to-donor-table.js b/app/migrations/20190129172059-adding-stripe-customer-id-to-donor-table.js deleted file mode 100644 index 938a1cb..0000000 --- a/app/migrations/20190129172059-adding-stripe-customer-id-to-donor-table.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn('donors', 'stripe_id', { - type: Sequelize.UUID, - defaultValue: null - }); - }, - - down: (queryInterface, Sequelize) => { - /* - Add reverting commands here. - Return a promise to correctly handle asynchronicity. - - Example: - return queryInterface.dropTable('users'); - */ - } -}; diff --git a/app/migrations/20190129174646-create-charges.js b/app/migrations/20190129174646-create-charges.js deleted file mode 100644 index aa50cf7..0000000 --- a/app/migrations/20190129174646-create-charges.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable('charges', { - id: { - allowNull: false, - autoIncrement: true, - primaryKey: true, - type: Sequelize.INTEGER - }, - amount: { - allowNull: false, - type: Sequelize.INTEGER - }, - description: { - type: Sequelize.STRING - }, - createdAt: { - allowNull: false, - type: Sequelize.DATE, - defaultValue: new Date() - }, - updatedAt: { - allowNull: false, - type: Sequelize.DATE, - defaultValue: new Date() - } - }); - }, - down: (queryInterface, Sequelize) => { - return queryInterface.dropTable('charges'); - } -}; diff --git a/app/migrations/20190203022133-add-subscription-id-payment-plans.js b/app/migrations/20190203022133-add-subscription-id-payment-plans.js deleted file mode 100644 index b95b908..0000000 --- a/app/migrations/20190203022133-add-subscription-id-payment-plans.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn('payment_plans', 'sub_item_id', { - type: Sequelize.UUID, - unique: true - }); - }, - - down: (queryInterface, Sequelize) => { - /* - Add reverting commands here. - Return a promise to correctly handle asynchronicity. - - Example: - return queryInterface.dropTable('users'); - */ - } -}; diff --git a/app/seeders/20190122053544-base-orgs.js b/app/seeders/20190122053544-base-orgs.js deleted file mode 100644 index 6ba8c29..0000000 --- a/app/seeders/20190122053544-base-orgs.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.bulkInsert('organizations', [ - { - id: 1, - name: 'Gopala Goshala', - short_description: 'We are committed to animal shelter!', - primary_cause: 'Animal Care', - primary_region: 'North India', - rating: 9.2, - created_at: new Date(), - updated_at: new Date() - }, - { - id: 2, - name: 'Water Organization India', - short_description: 'We love water! So should you!', - primary_cause: 'Water', - primary_region: 'North India', - rating: 8, - created_at: new Date(), - updated_at: new Date() - }, - { - id: 3, - name: "Pete's Animals", - short_description: 'Help us protect animals!', - primary_cause: 'Animal Care', - primary_region: 'North India', - rating: 7.5, - created_at: new Date(), - updated_at: new Date() - } - ]); - }, - - down: (queryInterface, Sequelize) => { - return queryInterface.bulkDelete('organizations', { - [Sequelize.Op.or]: [ - { name: 'Gopala Goshala' }, - { name: 'Water Organization India' }, - { name: "Pete's Animals" } - ] - }); - } -}; diff --git a/app/models/cause.model.js b/models/cause.model.js similarity index 100% rename from app/models/cause.model.js rename to models/cause.model.js diff --git a/app/models/charge.model.js b/models/charge.model.js similarity index 100% rename from app/models/charge.model.js rename to models/charge.model.js diff --git a/app/models/donor.model.js b/models/donor.model.js similarity index 100% rename from app/models/donor.model.js rename to models/donor.model.js diff --git a/app/models/grant.model.js b/models/grant.model.js similarity index 100% rename from app/models/grant.model.js rename to models/grant.model.js diff --git a/app/models/grantsOrganizations.model.js b/models/grantsOrganizations.model.js similarity index 100% rename from app/models/grantsOrganizations.model.js rename to models/grantsOrganizations.model.js diff --git a/app/models/index.js b/models/index.js similarity index 100% rename from app/models/index.js rename to models/index.js diff --git a/app/models/orgBank.model.js b/models/orgBank.model.js similarity index 100% rename from app/models/orgBank.model.js rename to models/orgBank.model.js diff --git a/app/models/organization.model.js b/models/organization.model.js similarity index 100% rename from app/models/organization.model.js rename to models/organization.model.js diff --git a/app/models/paymentplan.model.js b/models/paymentplan.model.js similarity index 100% rename from app/models/paymentplan.model.js rename to models/paymentplan.model.js diff --git a/app/models/region.model.js b/models/region.model.js similarity index 100% rename from app/models/region.model.js rename to models/region.model.js diff --git a/app/models/user.model.js b/models/user.model.js similarity index 100% rename from app/models/user.model.js rename to models/user.model.js diff --git a/app/seeders/20190122051334-base-user.js b/seeders/20190122051334-base-user.js similarity index 53% rename from app/seeders/20190122051334-base-user.js rename to seeders/20190122051334-base-user.js index 537b15f..32167bd 100644 --- a/app/seeders/20190122051334-base-user.js +++ b/seeders/20190122051334-base-user.js @@ -1,14 +1,24 @@ 'use strict'; +const bcrypt = require('bcrypt-nodejs'); // DOESNT WORK AS NEED TO HASH PASSWORD TO DB module.exports = { - up: (queryInterface, Sequelize) => { + up: async (queryInterface, Sequelize) => { + + var hash = bcrypt.hashSync('test', null); + return queryInterface.bulkInsert('donors', [ { first_name: 'Arjun', - email: 'patel.arjun50@gmail.com', - password: 'test', last_name: 'Patel', + email: 'patelarjun50@gmail.com', + password: hash, //hashed password + age: 20, + phone: 9499230445, + address: '14872 Waverly Lane', + city: 'Irvine', + state: 'CA', + country: 'US', created_at: new Date(), updated_at: new Date() } diff --git a/app/seeders/20190122052354-base-causes.js b/seeders/20190122052354-base-causes.js similarity index 79% rename from app/seeders/20190122052354-base-causes.js rename to seeders/20190122052354-base-causes.js index ed69644..5a7c1d7 100644 --- a/app/seeders/20190122052354-base-causes.js +++ b/seeders/20190122052354-base-causes.js @@ -4,13 +4,11 @@ module.exports = { up: (queryInterface, Sequelize) => { return queryInterface.bulkInsert('causes', [ { - id: 1, name: 'Animal Care', created_at: new Date(), updated_at: new Date() }, { - id: 2, name: 'Water', created_at: new Date(), updated_at: new Date() @@ -19,6 +17,6 @@ module.exports = { }, down: (queryInterface, Sequelize) => { - return queryInterface.bulkDelete('causes'); + return queryInterface.bulkDelete('causes', [{ name: 'Water' }, { name: 'Animal Care' }]); } }; diff --git a/app/seeders/20190122053404-base-regions.js b/seeders/20190122053404-base-regions.js similarity index 96% rename from app/seeders/20190122053404-base-regions.js rename to seeders/20190122053404-base-regions.js index 37f4837..679278f 100644 --- a/app/seeders/20190122053404-base-regions.js +++ b/seeders/20190122053404-base-regions.js @@ -4,7 +4,6 @@ module.exports = { up: (queryInterface, Sequelize) => { return queryInterface.bulkInsert('regions', [ { - id: 1, name: 'North India', created_at: new Date(), updated_at: new Date() diff --git a/seeders/20190122053544-base-orgs.js b/seeders/20190122053544-base-orgs.js new file mode 100644 index 0000000..5b5c235 --- /dev/null +++ b/seeders/20190122053544-base-orgs.js @@ -0,0 +1,73 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.bulkInsert('organizations', [ + { + name: 'Gopala Goshala', + email: 'kcp1982@yahoo.com', + password: hashedPass, //hashed password + short_description: + 'We are focused on bringing lawful animal treatment in North India. Check out our many projects such as city water fountains for animals', + primary_cause: 'Animal', + primary_region, + ein, + primary_contact_first_name, + primary_contact_last_name, + phone, + country, + address, + city, + zip, + estimate_assets, + estimate_year_operating_cost + }, + { + name, + email, + password: hashedPass, //hashed password + short_description, + primary_cause, + primary_region, + ein, + primary_contact_first_name, + primary_contact_last_name, + phone, + country, + address, + city, + zip, + estimate_assets, + estimate_year_operating_cost + }, + { + name, + email, + password: hashedPass, //hashed password + short_description, + primary_cause, + primary_region, + ein, + primary_contact_first_name, + primary_contact_last_name, + phone, + country, + address, + city, + zip, + estimate_assets, + estimate_year_operating_cost + } + ]); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.bulkDelete('organizations', { + [Sequelize.Op.or]: [ + { name: 'Gopala Goshala' }, + { name: 'Water Organization India' }, + { name: "Pete's Animals" } + ] + }); + } +}; diff --git a/app/seeders/20190122054316-base-grants.js b/seeders/20190122054316-base-grants.js similarity index 100% rename from app/seeders/20190122054316-base-grants.js rename to seeders/20190122054316-base-grants.js