Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work with recipes and remote mongo db database #2

Merged
merged 12 commits into from
Sep 14, 2019
3 changes: 2 additions & 1 deletion README.md
@@ -1,4 +1,4 @@
# NutriCoach API
# NutriCoach REST API
---
## Setup
- Node v8.x or above
Expand All @@ -10,6 +10,7 @@

- ```common``` (handling all shared services and information between user modules)
- ```users``` (everything regarding users)
- ```recipes``` (all the users favorites recipes store in the database)
- ```auth``` (handle the flow to generate JWT and login flow)

## Testing on Postman :rocket:
Expand Down
12 changes: 8 additions & 4 deletions authorization/controllers/authorization.controller.js
Expand Up @@ -12,18 +12,22 @@ exports.login = (req, res) => {
let token = jwt.sign(req.body, jwtSecret);
let b = new Buffer(hash);
let refresh_token = b.toString('base64');
res.status(201).send({accessToken: token, refreshToken: refresh_token});
res.status(201).send({
accessToken: token,
refreshToken: refresh_token,
userId: req.body.userId
});
} catch (err) {
res.status(500).send({errors: err});
res.status(500).send({ errors: err });
}
};

exports.refresh_token = (req, res) => {
try {
req.body = req.jwt;
let token = jwt.sign(req.body, jwtSecret);
res.status(201).send({id: token});
res.status(201).send({ id: token });
} catch (err) {
res.status(500).send({errors: err});
res.status(500).send({ errors: err });
}
};
2 changes: 1 addition & 1 deletion common/config/env.config.js
@@ -1,7 +1,7 @@
module.exports = {
"port": 3600,
"appEndpoint": "http://localhost:3600",
"apiEndpoint": "http;//localhost:3600",
"apiEndpoint": "http://localhost:3600",
"jwt_secret": "secretToken",
"jwt_expiration_in_seconds": 360000,
"environment": "dev",
Expand Down
5 changes: 3 additions & 2 deletions common/middleware/auth.permission.middleware.js
@@ -1,15 +1,16 @@
const jwt = require('jsonwebtoken');
const secret = require('../config/env.config')['jwt_secret'];

const ADMIN_PERMISSION = 4096;
const ADMIN_PERMISSION = 2048;

exports.minimumPermissionLevelRequired = (required_permission_level) => {
return (req, res, next) => {
let user_permission_level = parseInt(req.jwt.permissionLevel);
let userId = req.jwt.userId;
if (user_permission_level & required_permission_level) {
if (user_permission_level >= required_permission_level) {
return next();
} else {
console.log("No perimission");
return res.status(403).send();
}
};
Expand Down
2 changes: 1 addition & 1 deletion common/middleware/auth.validation.middleware.js
Expand Up @@ -33,8 +33,8 @@ exports.validJWTNeeded = (req, res, next) => {
req.jwt = jwt.verify(authorization[1], secret);
return next();
}

} catch (err) {
console.log(err.toString());
return res.status(403).send();
}
} else {
Expand Down
7 changes: 4 additions & 3 deletions index.js
@@ -1,12 +1,12 @@
require('dotenv').config();
const config = require('./common/config/env.config.js');

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

const AuthorizationRouter = require('./authorization/routes.config');
const UsersRouter = require('./users/routes.config');
const ProductsRouter = require('./products/routes.config');
const RecipesRouter = require('./recipes/routes.config');

app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
Expand All @@ -24,7 +24,8 @@ app.use(function (req, res, next) {
app.use(bodyParser.json());
AuthorizationRouter.routesConfig(app);
UsersRouter.routesConfig(app);
ProductsRouter.routesConfig(app);
RecipesRouter.routesConfig(app);
console.log(process.env.MONGODB_DATABASE_URL);


app.listen(config.port, function () {
Expand Down