Skip to content

Commit 70fc7f5

Browse files
committed
Continuando a implementacao
1 parent 95fd384 commit 70fc7f5

File tree

10 files changed

+162
-93
lines changed

10 files changed

+162
-93
lines changed

server/app.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
let createError = require('http-errors');
2-
let express = require('express');
3-
let path = require('path');
4-
let cookieParser = require('cookie-parser');
5-
let logger = require('morgan');
6-
let mongoose = require('./src/db/connection');
7-
let cors = require('cors');
8-
9-
let indexRouter = require('./routes/index');
10-
let usersRouter = require('./routes/users');
11-
12-
let app = express();
1+
const createError = require('http-errors');
2+
const express = require('express');
3+
const path = require('path');
4+
const cookieParser = require('cookie-parser');
5+
const logger = require('morgan');
6+
const mongoose = require('./src/db/connection');
7+
const cors = require('cors');
8+
const routes = require('./src/routes');
9+
10+
// let indexRouter = require('./routes/index');
11+
// let usersRouter = require('./routes/users');
12+
13+
const app = express();
1314
app.use(cors());
1415

1516
// view engine setup
@@ -22,8 +23,10 @@ app.use(express.urlencoded({ extended: false }));
2223
app.use(cookieParser());
2324
app.use(express.static(path.join(__dirname, 'public')));
2425

25-
app.use('/', indexRouter);
26-
app.use('/users', usersRouter);
26+
// app.use('/', indexRouter);
27+
// app.use('/users', usersRouter);
28+
29+
routes(app);
2730

2831
// catch 404 and forward to error handler
2932
app.use(function (req, res, next) {

server/routes/index.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

server/routes/users.js

Lines changed: 0 additions & 70 deletions
This file was deleted.

server/src/controllers/auth.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
const jwt = require('jwt-simple');
2+
const User = require('../models/user');
3+
const cfg = require('../../config');
4+
5+
module.exports = function (app) {
6+
return {
7+
token: (req, res) => {
8+
let user = req.body;
9+
10+
if (!user.user_name || !user.password) {
11+
return res.status(401).send('Unauthorized111');
12+
}
13+
14+
let query = {email: user.user_name, password: user.password};
15+
16+
let callback = function (err, user) {
17+
if (err) {
18+
return res.status(500).json({err: err});
19+
}
20+
21+
if (!user) {
22+
return res.status(401).send('Unauthorized2222');
23+
}
24+
25+
let payload = {id: user.id};
26+
let token = jwt.encode(payload, cfg.jwtSecret);
27+
28+
return res.json({token: token})
29+
};
30+
31+
user = User.findOne(query, callback);
32+
},
33+
34+
me: (req, res) => {
35+
res.status(200).json({
36+
user: req.user
37+
})
38+
},
39+
register: (req, res) => {
40+
let data = {
41+
name: req.body.name,
42+
email: req.body.email,
43+
password: req.body.password,
44+
accounts: [{
45+
name: req.body.account_name,
46+
role: 'owner',
47+
enabled: true
48+
}]
49+
};
50+
51+
let callback = function (err, user) {
52+
if (err) {
53+
return res.status(422).json({err: err});
54+
}
55+
return res.status(200).json({user: user});
56+
57+
};
58+
59+
User.create(data, callback);
60+
},
61+
edit: (req, res) => {
62+
return res.json({page: 'auth@edit'});
63+
}
64+
}
65+
}

server/src/controllers/lists.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const model = require('../models/list');
2+
const CrudService = require('../services/crud');
3+
4+
const service = new CrudService(model);
5+
6+
module.exports = function () {
7+
return {
8+
index: function (req, res) {
9+
service.list().then((result) => {
10+
return res.json(result);
11+
});
12+
},
13+
add: function (req, res) {
14+
service.insert(req.body).then((result) => {
15+
return res.json(result);
16+
}).catch((err) =>{
17+
return res.status(422).json(err);
18+
});
19+
}
20+
}
21+
};

server/src/models/list.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const mongoose = require('mongoose');
2+
3+
const List = mongoose.Schema({
4+
title: {type: String, required: true},
5+
quantity: Number
6+
});
7+
8+
module.exports = mongoose.model('List', List);

server/src/routes/auth.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const passport = require('../auth/auth');
2+
3+
module.exports = function (app) {
4+
const controller = require('../controllers/auth')(app);
5+
6+
app.post('/oauth/token', controller.token);
7+
app.get('/oauth/me', passport.authenticate('jwt', {session: false}), controller.me);
8+
app.post('/oauth/register', controller.register);
9+
app.put('/oauth/profile-update', passport.authenticate('jwt', {session: false}), controller.edit);
10+
}

server/src/routes/index.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
let auth = require('./auth');
2+
let lists = require('./lists');
3+
4+
module.exports = (app) => {
5+
app.get('/', function (req, res) {
6+
res.render('index', {title: 'Express'});
7+
});
8+
9+
auth(app);
10+
lists(app);
11+
};

server/src/routes/lists.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = function (app) {
2+
let controller = require('../controllers/lists')();
3+
4+
app.get('/api/lists', controller.index);
5+
app.post('/api/lists', controller.add);
6+
}

server/src/services/crud.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function CrudService(model) {
2+
this.model = model;
3+
}
4+
5+
CrudService.prototype.list = function () {
6+
return new Promise((resolve) => {
7+
this.model.find(null, (err, result) => {
8+
return resolve({data: result})
9+
})
10+
});
11+
};
12+
13+
CrudService.prototype.insert = function (data) {
14+
return new Promise((resolve, reject) => {
15+
this.model.create(data, (err, result) => {
16+
if (err) {
17+
return reject({err: err});
18+
}
19+
return resolve({data: result})
20+
})
21+
});
22+
};
23+
24+
module.exports = CrudService;

0 commit comments

Comments
 (0)