Skip to content

Commit

Permalink
add middleware for consultant authorization
Browse files Browse the repository at this point in the history
  • Loading branch information
marinco committed Dec 28, 2019
1 parent ec08ad1 commit ecb6331
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 0 deletions.
15 changes: 15 additions & 0 deletions middleware/checkIfConsultantMiddleware.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Consultant = require('../models/consultant.js');

module.exports = async (req, res, next) => {
//check if the username is a consultant's username
const consultant = await Consultant.findOne({
where: {
Username: req.username
}
});
if (!consultant) return res.status(401).send('Access denied.');
else {
req.consultant = consultant;
next();
}
};
2 changes: 2 additions & 0 deletions router.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const pendingReviews = require('./routes/pendingReviews.js');
const ownerProfile = require('./routes/ownerProfile.js');
const registrationConsultant= require('./routes/registrationConsultant.js');
const consultantLogin= require('./routes/consultantLogin.js');
const consultantStatistics= require('./routes/consultantStatistics.js');


app.use('/api/image', image);
Expand All @@ -40,6 +41,7 @@ app.use('/api/user/customer/review', manageCustomerReviews);
app.use('/api/user/customer', manageCustomerInformation);
app.use('/api/consultant/register', registrationConsultant);
app.use('/api/consultant/login', consultantLogin);
app.use('/api/consultant/statistics', consultantStatistics);


app.use(bodyParser.json());
Expand Down
53 changes: 53 additions & 0 deletions routes/consultantStatistics.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
const express = require('express');
const router = express();
router.use(express.json());

const Sequelize = require('sequelize');

const Consultant = require('../models/consultant.js');
const Customer = require('../models/customer.js');
const Owner = require('../models/owner.js');
const Search= require('../models/search.js')

const isConsultant = require('../middleware/checkIfConsultantMiddleware.js');
const auth = require('../middleware/authorizationMiddleware.js');



router.get('/', auth, isConsultant, async (req, res) => {
console.log('In GET /api/consultant/statistics');
try {
console.log('consultant is ' + req.username)

const customers= await Customer.findAll();
console.log('customers are ' + JSON.stringify(customers));

const customersByNationality=await Customer.findAll({
attributes: ['Nationality', [Sequelize.fn('count', Sequelize.col('Nationality')), 'numberOfCustomers']],
group: ['Nationality'],
raw: true
})

const customers2=await Customer.count('Nationality', 'count', {
g
});
console.log('customers2 are ' + JSON.stringify(customers2))

console.log('customers by nationality ' + JSON.stringify(customersByNationality))

res.status(200).send(customers2);
// await Search.create({
// Username: 'marinco',
// SearchedWord: 'word2',
// NumberOfSearches: 1
// });
// res.status(200).send('ok');


}catch (error) {
console.log(error)
res.status(500).send('Internal server error');
}
});

module.exports = router;

0 comments on commit ecb6331

Please sign in to comment.