Skip to content

Commit ead98b3

Browse files
committed
finalização da Aula Final
finalizado o projeto e feito o comparativo com o código disponível no github
1 parent d904c2d commit ead98b3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1650
-141
lines changed

api/config/jsonSecret.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
module.exports={
2-
secret: "e96d16e0e97ce4f1bc397156eb34c9a8"
1+
module.exports = {
2+
secret: "c940b61c49f2a0a1bf3de506ca33a605"
33
}

api/controllers/authController.js

+9-10
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@ const AuthService = require('../services/authService')
22

33
const authService = new AuthService()
44

5-
class AuthController{
5+
class AuthController {
6+
static async login(req, res) {
7+
const { email, senha } = req.body
68

7-
static async login(req,res){
8-
const {email ,senha } = req.body
9-
10-
try{
9+
try {
1110
const login = await authService.login({email, senha})
12-
11+
1312
res.status(200).send(login)
14-
}catch(error){
15-
res.status(401).send({message:error.message})
13+
} catch (error) {
14+
res.status(401).send({ message: error.message})
1615
}
1716

1817
}
19-
18+
2019
}
21-
module.exports = AuthController
2220

21+
module.exports = AuthController
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
const PermissaoService = require('../services/permissaoService')
2+
const permissaoService = new PermissaoService()
3+
4+
class PermissaoController {
5+
static async cadastrar(req, res) {
6+
const { nome, descricao } = req.body
7+
8+
try {
9+
const permissao = await permissaoService.cadastrar({ nome, descricao})
10+
11+
res.status(201).send(permissao)
12+
} catch (error) {
13+
res.status(400).send({ message: error.message})
14+
}
15+
}
16+
17+
static async buscarTodasPermissoes(req, res) {
18+
const permissoes = await permissaoService.buscarTodasPermissoes()
19+
20+
res.status(200).json(permissoes)
21+
}
22+
23+
static async buscarPermissaoPorId(req, res) {
24+
try {
25+
const { id } = req.params
26+
const permissao = await permissaoService.buscarPermissaoPorId(id)
27+
28+
res.status(200).json(permissao)
29+
} catch (error) {
30+
console.log('Message error: ', error.message)
31+
res.status(400).send({ message: error.message })
32+
}
33+
}
34+
35+
static async deletarPermissaoPorId(req, res) {
36+
const { id } = req.params
37+
38+
try {
39+
await permissaoService.deletarPermissaoPorId(id)
40+
41+
res.status(200).send({ message: 'Permissão deletada com sucesso!' })
42+
43+
} catch (error) {
44+
console.log('Message error: ', error.message)
45+
res.status(400).send({ message: error.message })
46+
}
47+
}
48+
49+
static async editarPermissao(req, res) {
50+
const { id } = req.params
51+
const { nome, descricao } = req.body
52+
53+
try {
54+
const role = await permissaoService.editarPermissao({ id, nome, descricao })
55+
56+
res.status(200).json(role)
57+
} catch (error) {
58+
console.log('Message error: ', error.message)
59+
res.status(400).send({ message: error.message })
60+
}
61+
}
62+
}
63+
64+
module.exports = PermissaoController

api/controllers/roleController.js

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
const RoleService = require('../services/roleService')
2+
const roleService = new RoleService()
3+
4+
class RoleController {
5+
static async cadastrar(req, res) {
6+
const { nome, descricao } = req.body
7+
8+
try {
9+
const role = await roleService.cadastrar({ nome, descricao })
10+
11+
res.status(201).send(role)
12+
} catch (error) {
13+
res.status(400).send({ message: error.message })
14+
}
15+
}
16+
17+
static async buscarTodasRoles(req, res) {
18+
const roles = await roleService.buscarTodasRoles()
19+
20+
res.status(200).json(roles)
21+
}
22+
23+
static async buscarRolePorId(req, res) {
24+
try {
25+
const { id } = req.params
26+
const role = await roleService.buscarRolePorId(id)
27+
28+
res.status(200).json(role)
29+
30+
} catch (error) {
31+
console.log('Message error: ', error.message)
32+
res.status(400).send({ message: error.message })
33+
}
34+
}
35+
36+
static async deletarRolePorId(req, res) {
37+
const { id } = req.params
38+
39+
try {
40+
await roleService.deletarRolePorId(id)
41+
42+
res.status(200).send({ message: 'Role deletada com sucesso!' })
43+
44+
} catch (error) {
45+
console.log('Message error: ', error.message)
46+
res.status(400).send({ message: error.message })
47+
}
48+
}
49+
50+
static async editarRole(req, res) {
51+
const { id } = req.params
52+
const { nome, descricao } = req.body
53+
54+
try {
55+
const role = await roleService.editarRole({ id, nome, descricao })
56+
57+
res.status(200).json(role)
58+
} catch (error) {
59+
console.log('Message error: ', error.message)
60+
res.status(400).send({ message: error.message })
61+
}
62+
}
63+
}
64+
65+
module.exports = RoleController
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const SegurancaService = require('../services/segurancaService')
2+
const segurancaService = new SegurancaService()
3+
4+
class SegurancaController {
5+
static async cadastrarAcl(req, res) {
6+
const { roles, permissoes } = req.body
7+
const { usuarioId } = req
8+
9+
try {
10+
const acl = await segurancaService.cadastrarAcl({ roles, permissoes, usuarioId})
11+
12+
res.status(201).send(acl)
13+
} catch (error) {
14+
res.status(400).send({ message: error.message})
15+
}
16+
}
17+
18+
static async cadastrarPermissoesRoles(req, res) {
19+
const { roleId, permissoes } = req.body
20+
21+
try {
22+
const permissoesRole = await segurancaService.cadastrarPermissoesRoles({ roleId, permissoes})
23+
24+
res.status(201).send(permissoesRole)
25+
} catch (error) {
26+
res.status(400).send({ message: error.message})
27+
}
28+
}
29+
}
30+
31+
module.exports = SegurancaController

api/controllers/usuarioController.js

+25-36
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,63 @@
11
const UsuarioService = require('../services/usuarioService')
2+
23
const usuarioService = new UsuarioService()
34

45
class UsuarioController {
5-
static async cadastrar(req,res){
6-
7-
try{
8-
const {nome, email, senha } = req.body
6+
static async cadastrar(req, res) {
7+
const { nome, email, senha } = req.body
98

10-
const usuario = await usuarioService.cadastrar({nome,email,senha})
9+
try {
10+
const usuario = await usuarioService.cadastrar({ nome, email, senha})
1111

1212
res.status(201).send(usuario)
13-
}catch(error){
14-
res.status(400).send({ message: error.message })
13+
} catch (error) {
14+
res.status(400).send({ message: error.message})
1515
}
1616

1717
}
1818

19-
static async listar(req,res){
20-
21-
try{
22-
23-
const usuario = await usuarioService.listar()
24-
25-
res.status(201).send(usuario)
26-
}catch(error){
27-
res.status(400).send({ message: error.message })
28-
}
19+
static async buscarTodosUsuarios(req, res) {
20+
const usuarios = await usuarioService.buscarTodosUsuarios()
2921

22+
res.status(200).json(usuarios)
3023
}
3124

3225
static async buscarUsuarioPorId(req, res) {
3326
try {
3427
const { id } = req.params
3528
const usuario = await usuarioService.buscarUsuarioPorId(id)
36-
37-
res.status(200).json(usuario)
29+
30+
res.status(200).json(usuario)
3831
} catch (error) {
39-
console.log('Message error: ', error.message)
40-
res.status(400).send({ message: error.message })
32+
res.status(400).send({ message: error.message })
4133
}
4234
}
4335

44-
static async deletarUsuarioPorId(req, res) {
36+
static async editarUsuario(req, res) {
4537
const { id } = req.params
46-
38+
const { nome, email } = req.body
39+
4740
try {
48-
await usuarioService.deletarUsuarioPorId(id)
49-
50-
res.status(200).send({ message: 'Usuario deletada com sucesso!' })
51-
41+
const usuario = await usuarioService.editarUsuario({ id, nome, email })
42+
43+
res.status(200).json(usuario)
5244
} catch (error) {
53-
console.log('Message error: ', error.message)
5445
res.status(400).send({ message: error.message })
5546
}
5647
}
57-
58-
static async editarUsuario(req, res) {
48+
49+
static async deletarUsuario(req, res) {
5950
const { id } = req.params
60-
const { nome, email, senha } = req.body
61-
51+
6252
try {
63-
const usuario = await usuarioService.editarUsuario({ id, nome, email, senha })
53+
await usuarioService.deletarUsuario(id)
54+
55+
res.status(200).send({ message: 'Usuario deletado com sucesso!' })
6456

65-
res.status(200).json(usuario)
6657
} catch (error) {
67-
console.log('Message error: ', error.message)
6858
res.status(400).send({ message: error.message })
6959
}
7060
}
71-
7261
}
7362

7463
module.exports = UsuarioController

api/middleware/autenticado.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const { verify, decode } = require('jsonwebtoken')
2+
const jsonSecret = require('../config/jsonSecret')
3+
4+
module.exports = async (req, res, next) => {
5+
const token = req.headers.authorization
6+
7+
if (!token) {
8+
return res.status(401).send('Access token nao informado')
9+
}
10+
11+
const [, accessToken] = token.split(" ")
12+
13+
try {
14+
verify(accessToken, jsonSecret.secret)
15+
16+
const { id, email} = await decode(accessToken)
17+
18+
req.usuarioId = id
19+
req.usuarioEmail = email
20+
21+
return next()
22+
} catch (error) {
23+
res.status(401).send('Usuario não autorizado')
24+
}
25+
}

api/middleware/permissoes.js

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const database = require('../models')
2+
3+
const permissoes = (listaPermissoes) => {
4+
return async (req, res, next) => {
5+
const { usuarioId } = req
6+
7+
const usuario = await database.usuarios.findOne({
8+
include: [
9+
{
10+
model: database.permissoes,
11+
as: 'usuario_permissoes',
12+
attributes: ['id', 'nome']
13+
}
14+
],
15+
where: {
16+
id: usuarioId
17+
}
18+
})
19+
20+
if (!usuario) {
21+
return res.status(401).send('Usuario não cadastrado')
22+
}
23+
24+
const permissoesCadastradas = usuario.usuario_permissoes
25+
.map((permissao) => permissao.nome)
26+
.some((permissao) => listaPermissoes.includes(permissao))
27+
28+
if (!permissoesCadastradas) {
29+
return res.status(401).send('Usuario nao possui acesso a essa rota')
30+
}
31+
32+
return next()
33+
}
34+
}
35+
36+
module.exports = permissoes

0 commit comments

Comments
 (0)