Skip to content

Commit 794dea6

Browse files
author
Juan Pablo
committed
All done
1 parent 5cb8b14 commit 794dea6

File tree

11 files changed

+91
-94
lines changed

11 files changed

+91
-94
lines changed

api/controllers/action.controllers.js

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

api/controllers/clients.controller.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
const { incidencesModel } = require('../models/incidences.model')
22

3-
exports.listUserIncidences = (req, res) => {
3+
exports.listUserIncidence = (req, res) => {
44
incidencesModel
5-
.find({ 'client.email': req.params.clientEmail })
5+
.findById(req.params.id)
66
.then(incidences => {
7-
8-
if (incidences[0].client.password === req.params.clientPassword) {
7+
if (incidences[0].client.password === req.body.client.password) {
98
console.log(incidences)
109
const incidencesArray = []
1110
incidences.forEach((incidence, index) => {

api/controllers/incidences.controller.js

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ exports.createIncidence = (req, res) => {
1313
priority: ' ',
1414
startDate: day,
1515
finishDate: finishD,
16-
incidenceCategory: req.params.incidenceCategory,
16+
incidenceCategory: req.body.incidenceCategory,
1717
client: {
1818
firstName: req.body.client.firstName,
1919
lastName: req.body.client.lastName,
@@ -32,6 +32,20 @@ exports.createIncidence = (req, res) => {
3232
})
3333
}
3434

35+
exports.getAllIncidence = (req, res) => {
36+
incidencesModel
37+
.find()
38+
.populate('incidenceCategory')
39+
.populate('Technician')
40+
.then(incidence => {
41+
res.status(200).json(incidence)
42+
})
43+
.catch(err => {
44+
console.log(err)
45+
res.status(500).json({ msg: 'Error' })
46+
})
47+
}
48+
3549
exports.getIncidence = (req, res) => {
3650
incidencesModel
3751
.findById(req.params.incidenceID)
@@ -90,3 +104,43 @@ exports.deleteIncidence = (req, res) => {
90104
res.status(500).json({ msg: 'Error' })
91105
})
92106
}
107+
108+
exports.createAction = (req, res) => {
109+
const day = new Date()
110+
const finishD = new Date(0)
111+
incidencesModel
112+
.findById(req.params.incidenceId)
113+
.then(incidence => {
114+
console.log(incidence)
115+
incidence.actions.push({ technicianId: req.params.technicianId, startDate: day, finishDate: finishD, ...req.body })
116+
incidence.save(err => {
117+
if (err) res.status(500).send(err)
118+
res.status(200).json(incidence)
119+
})
120+
})
121+
.catch(err => {
122+
console.log(err)
123+
res.status(500).json({ msg: 'Error ' })
124+
})
125+
}
126+
127+
exports.updateAction = (req, res) => {
128+
incidencesModel
129+
.findById(req.params.incidenceId)
130+
.then(incidence => {
131+
const action = incidence.actions.id(req.params.actionId)
132+
incidence.actions.id(req.params.actionId).done = req.body.done ?? action.done
133+
incidence.actions.id(req.params.actionId).status = req.body.status ?? action.status
134+
incidence.actions.id(req.params.actionId).startDate = action.startDate
135+
incidence.actions.id(req.params.actionId).finishDate = action.finishDate
136+
incidence.actions.id(req.params.actionId).technicianId = action.technicianId
137+
incidence.save(err => {
138+
if (err) res.status(500).send(err)
139+
res.status(200).json(incidence)
140+
})
141+
})
142+
.catch(err => {
143+
console.log(err)
144+
res.status(500).json({ msg: 'Error ' })
145+
})
146+
}

api/models/action.model.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ const actionSchema = new mongoose.Schema({
2020
},
2121
technicianId: {
2222
type: mongoose.Schema.Types.ObjectId,
23-
ref: 'employee',
24-
required: true
23+
ref: 'employee'
2524
}
2625
})
2726

api/routes/action.router.js

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

api/routes/auth.router.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const {
66
whoami
77
} = require('../controllers/auth.controller')
88

9-
authRouter.get('/whoami', checkAuth, checkManager, whoami)
9+
authRouter.get('/whoami', checkAuth, whoami)
1010

1111
authRouter.post('/login', login)
1212

api/routes/clients.router.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const clientsRouter = require('express').Router()
22

33
const {
4-
listUserIncidences
4+
listUserIncidence
55
} = require('../controllers/clients.controller')
66

7-
clientsRouter.get('/clientEmail/:clientEmail/clientPassword/:clientPassword', listUserIncidences)
7+
clientsRouter.get('/incidenceId/:id/', listUserIncidence)
88

99
exports.clientsRouter = clientsRouter

api/routes/employees.router.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const {
88
getAllEmployees
99
} = require('../controllers/employees.controller')
1010

11-
employeesRouter.post('/', checkAuth, checkManager, addEmployee)
11+
employeesRouter.post('/', addEmployee)
1212
employeesRouter.put('/:idEmployee', checkAuth, checkManager, updateEmployee)
1313
employeesRouter.get('/', checkAuth, checkManager, getAllEmployees)
1414
employeesRouter.delete('/', checkAuth, checkManager, deleteEmployee)

api/routes/incidences.router.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
const incidencesRouter = require('express').Router()
2-
const { checkAuth } = require('../../utils')
2+
const { checkAuth, checkManager, checkCustomerServiceOrManager, checkTechnicianOrManager } = require('../../utils')
33

44
const {
5-
createIncidence,
6-
getIncidence,
7-
updateIncidence,
8-
deleteIncidence
5+
createIncidence,
6+
getIncidence,
7+
getAllIncidences,
8+
updateIncidence,
9+
deleteIncidence,
10+
createAction,
11+
updateAction,
12+
getAction
913
} = require('../controllers/incidences.controller')
1014

15+
incidencesRouter.get('/', checkAuth, checkManager, getIncidence)
1116
incidencesRouter.get('/:incidenceID', getIncidence)
12-
incidencesRouter.post('/:customerServiceId/:incidenceCategory', createIncidence)
13-
incidencesRouter.put('/:incidenceID', checkAuth, updateIncidence)
14-
incidencesRouter.delete('/incidenceID/:incidenceID', deleteIncidence)
17+
incidencesRouter.post('/', checkAuth, checkCustomerServiceOrManager, createIncidence)
18+
incidencesRouter.post('/:incidenceId/technician/:technicianId', checkAuth, checkTechnicianOrManager, createAction)
19+
incidencesRouter.put('/:incidenceID', checkAuth, checkTechnicianOrManager, updateIncidence)
20+
incidencesRouter.put('/:incidenceId/action/:actionId', checkAuth, checkTechnicianOrManager, updateAction)
21+
incidencesRouter.delete('/:incidenceID', checkAuth, checkManager, deleteIncidence)
1522

1623
exports.incidencesRouter = incidencesRouter

api/routes/index.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ const router = require('express').Router()
33
const { employeesRouter } = require('./employees.router')
44
const { authRouter } = require('./auth.router')
55
const { incidenceCategoriesRouter } = require('./incidenceCategories.router')
6-
7-
const { actionRouter } = require('./action.router')
86
const { clientsRouter } = require('./clients.router')
97
const { incidencesRouter } = require('./incidences.router')
108

@@ -13,7 +11,6 @@ router
1311
.use('/employees', employeesRouter)
1412
.use('/auth', authRouter)
1513
.use('/incidenceCategories', incidenceCategoriesRouter)
16-
.use('/action', actionRouter)
1714
.use('/client', clientsRouter)
1815
.use('/incidences', incidencesRouter)
1916

utils/index.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ const { runInNewContext } = require('vm')
44
const { employeeModel } = require('../api/models/employees.model')
55

66
exports.checkAuth = (req, res, next) => {
7-
87
jwt.verify(req.headers.token, process.env.SECRET, (err, token) => {
9-
108
if (err) { res.status(403).json({ error: 'Token not valid' }) }
11-
129
employeeModel
1310
.findOne({ email: token.email })
1411
.then(user => {
@@ -87,6 +84,19 @@ exports.checkCustomerServiceOrManagerOrTechnician = (req, res, next) => {
8784
})
8885
}
8986

87+
exports.checkTechnicianOrManager = (req, res, next) => {
88+
employeeModel
89+
.findOne({ email: req.body.token.email })
90+
.then(user => {
91+
if (user.rol === 'Technician' || user.rol === 'Manager') {
92+
res.locals.user = user
93+
next()
94+
} else {
95+
res.status(500).json({ err: 'Token not valid' })
96+
}
97+
})
98+
}
99+
90100
exports.isValidEmail = (email) => {
91101
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
92102
return re.test(String(email).toLowerCase())

0 commit comments

Comments
 (0)