diff --git a/app/controllers/auth.controller.js b/app/controllers/auth.controller.js index c1cf147..83c95d5 100644 --- a/app/controllers/auth.controller.js +++ b/app/controllers/auth.controller.js @@ -7,6 +7,7 @@ const { Donor, Organization } = db; // Find a Donor/Org by email + login with JWT exports.login = (type, role) => (req, res, next) => { + console.log('haha'); const curr_types = { donor: Donor, org: Organization diff --git a/app/controllers/organization/organization.controller.js b/app/controllers/organization/organization.controller.js index d2cf50a..e12aaf7 100644 --- a/app/controllers/organization/organization.controller.js +++ b/app/controllers/organization/organization.controller.js @@ -5,7 +5,6 @@ const db = require('../../config/db.config.js'), const { Grant, Cause, Region, Organization } = db; // POST create an organization -// Temporarily only use: name, email, password, short_description, primary_cause, primary_region exports.create = async (req, res, next) => { let { name, @@ -13,7 +12,17 @@ exports.create = async (req, res, next) => { password, short_description, primary_cause, - primary_region + primary_region, + ein, + primary_contact_first_name, + primary_contact_last_name, + phone, + country, + address, + city, + zip, + estimate_assets, + estimate_year_operating_cost } = req.body; primary_cause = primary_cause.trim().toLowerCase(); @@ -44,7 +53,7 @@ exports.create = async (req, res, next) => { type: db.Sequelize.QueryTypes.SELECT }); - // could not find the cause or region in the db, so add + // cause or region not found if (!causes.length) { await Cause.create({ name: primary_cause }, { transaction }); } @@ -53,7 +62,7 @@ exports.create = async (req, res, next) => { } const saltRounds = await bcrypt.genSaltSync(10); - // hash + // hash with salt rounds const hashedPass = await bcrypt.hashSync(password, saltRounds); // Store hash in DB @@ -63,7 +72,17 @@ exports.create = async (req, res, next) => { password: hashedPass, //hashed password short_description, primary_cause, - primary_region + primary_region, + ein, + primary_contact_first_name, + primary_contact_last_name, + phone, + country, + address, + city, + zip, + estimate_assets, + estimate_year_operating_cost }); await transaction.commit(); diff --git a/app/middleware/check-auth.js b/app/middleware/check-auth.js index 947d9b1..ed9953f 100644 --- a/app/middleware/check-auth.js +++ b/app/middleware/check-auth.js @@ -5,8 +5,11 @@ module.exports = role => (req, res, next) => { try { const token = req.headers.authorization.split(' ')[1]; const decoded = jwt.verify(token, process.env.JWT_KEY); - req.user = decoded; //for use till end of request + // user info till end of request + req.user = decoded; + + // verify role of the call if (role != req.user.role) { throw new Error(); } diff --git a/app/models/organization.model.js b/app/models/organization.model.js index 104829e..0fb6714 100644 --- a/app/models/organization.model.js +++ b/app/models/organization.model.js @@ -13,6 +13,26 @@ module.exports = (sequelize, DataTypes) => { }, allowNull: false }, + phone: { + type: DataTypes.STRING, + allowNull: false + }, + address: { + type: DataTypes.STRING, + allowNull: false + }, + city: { + type: DataTypes.STRING, + allowNull: false + }, + country: { + type: DataTypes.STRING, + allowNull: false + }, + zip: { + type: DataTypes.STRING, + allowNull: false + }, password: { type: DataTypes.STRING, allowNull: false @@ -25,7 +45,27 @@ module.exports = (sequelize, DataTypes) => { short_description: DataTypes.STRING, primary_cause: { type: DataTypes.STRING, allowNull: false }, primary_region: { type: DataTypes.STRING, allowNull: false }, - rating: { type: DataTypes.INTEGER, defaultValue: 0, allowNull: false } + rating: { type: DataTypes.INTEGER, defaultValue: 0, allowNull: false }, + ein: { + type: DataTypes.STRING, + allowNull: false + }, + estimate_assets: { + type: DataTypes.BIGINT, + defaultValue: 0 + }, + estimate_year_operating_cost: { + type: DataTypes.INTEGER, + defaultValue: 0 + }, + primary_contact_first_name: { + type: DataTypes.STRING, + allowNull: false + }, + primary_contact_last_name: { + type: DataTypes.STRING, + allowNull: false + } }); return Organization; };