Pārlūkot izejas kodu

feature/24 (#35)

pull/37/head
dusan-lazarevic pirms 3 gadiem
vecāks
revīzija
4696c5bf57

+ 7
- 7
src/endpoints/token.js Parādīt failu

@@ -3,28 +3,28 @@ const User = require("../models/token")
const Token = require('../models/token')
const bcrypt = require('bcryptjs')

const loginUser = async (req, res) => {
const loginUser = async (req, res, next) => {
try {
const findUser = await Token.findByCredentials(req.body.email, req.body.password)
if(!findUser) {
if (!findUser) {
return res.status(400).send('Wrong credentials!')
}
const isValidPassword = await bcrypt.compare(req.body.password, findUser.password)
if(!isValidPassword) {
if (!isValidPassword) {
return res.status(400).send('Password is incorrect!')
}
const token = await Token.generateAuthToken(findUser)

return res.send(findUser)
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

const logout = async (req, res) => {
const result = await Token.destroyToken(req.body.token)
if(!result) {
if (!result) {
return res.status(404).send('No user has the token provided!')
}
return res.send('Token ' + req.body.token + ' invalidated!')
@@ -35,7 +35,7 @@ const refreshUserToken = async (req, res) => {
token: req.body.token
}
const result = await Token.refreshAuthToken(form.token)
if(!result) {
if (!result) {
return res.status(404).send('Token not valid!')
}


+ 19
- 14
src/endpoints/user.js Parādīt failu

@@ -1,20 +1,21 @@
const bcrypt = require("bcryptjs/dist/bcrypt")
const {Router} = require("express")
const { Router } = require("express")
const User = require("../models/user")
const logger = require("../logging/logger")

const getUsers = async (res) => {
const getUsers = async (req, res, next) => {
try {
logger.silly('hello from logger')
const allUsers = await User.find({})
return res.status(200).send(allUsers)
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

const getUser = async (res, id) => {
const getUser = async (req, res, next) => {
try {
const id = req.params.id
if (!id) {
return res.status(400).send('Bad request')
}
@@ -27,12 +28,13 @@ const getUser = async (res, id) => {

return res.status(200).json(user)
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

const createUser = async (res, userModel) => {
const createUser = async (req, res, next) => {
try {
const userModel = req.body
if (Object.entries(userModel).length === 0) {
return res.status(400).send('Object cant be empty')
}
@@ -52,8 +54,10 @@ const createUser = async (res, userModel) => {
}
}

const updateUser = async (res, id, objBody) => {
const updateUser = async (req, res, next) => {
try {
const id = req.params.id
const objBody = req.body
if (Object.entries(objBody).length == 0) {
return res.status(400).send('Invalid input parameters')
}
@@ -75,11 +79,11 @@ const updateUser = async (res, id, objBody) => {

return res.status(200).send('User updated successfully')
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

const updateUserContacts = async (req, res) => {
const updateUserContacts = async (req, res, next) => {
try {
userFound = true
if (!userFound) {
@@ -90,18 +94,19 @@ const updateUserContacts = async (req, res) => {
}
return res.status(200).send('user contacts updated successfully')
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

const deleteUser = async (res, id) => {
const deleteUser = async (req, res, next) => {
try {
const id = req.params.id
if (!id) {
return res.status(400).send('You need to provide valid Id')
}

const user = await User.findById(id)
if(!user){
if (!user) {
return res.status(404).send("User with the id of: " + id + " doesnt exist")
}

@@ -109,8 +114,8 @@ const deleteUser = async (res, id) => {

return res.status(204).send('Deleting user with id of ' + id)
} catch (e) {
return res.status(500).send(e)
next(e)
}
}

module.exports = {getUsers, getUser, createUser, updateUser, updateUserContacts, deleteUser}
module.exports = { getUsers, getUser, createUser, updateUser, updateUserContacts, deleteUser }

+ 10
- 0
src/middleware/errorHandling.js Parādīt failu

@@ -0,0 +1,10 @@
const errorLogger = (err, req, res, next) => {
console.error('GRESKA KOLEGAA' + err)
next(err)
}
const errorResponder = (err, req, res, next) => {
res.status(err.statusCode).send(err)
}
module.exports = { errorLogger, errorResponder }

+ 3
- 9
src/routes/token.js Parādīt failu

@@ -16,9 +16,7 @@ const endpoints = require('../endpoints/token')
* 500:
* description: Internal server error.
*/
router.post('/auth/token', async (req, res) => {
return await endpoints.loginUser(req, res)
})
router.post('/auth/token', endpoints.loginUser)

/**
* @openapi
@@ -34,9 +32,7 @@ router.post('/auth/token', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.post('/auth/logout', async (req, res) => {
return await endpoints.logout(req, res)
})
router.post('/auth/logout', endpoints.logout)

/**
* @openapi
@@ -52,8 +48,6 @@ router.post('/auth/logout', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.post('/auth/refresh', async(req, res) => {
return await endpoints.refreshUserToken(req, res)
})
router.post('/auth/refresh', endpoints.refreshUserToken)

module.exports = router

+ 6
- 17
src/routes/user.js Parādīt failu

@@ -4,9 +4,7 @@ const endpoints = require('../endpoints/user')
const router = new express.Router()
const app = express()

router.get('/users', async (req, res) => {
return await endpoints.getUsers(res)
})
router.get('/users', endpoints.getUsers)

/**
* @openapi
@@ -22,9 +20,7 @@ router.get('/users', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.get('/users/:id', async (req, res) => {
return await endpoints.getUser(res, req.params.id)
})
router.get('/users/:id', endpoints.getUser)

/**
* @openapi
@@ -40,9 +36,7 @@ router.get('/users/:id', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.post('/users', async (req, res) => {
return await endpoints.createUser(res, req.body)
})
router.post('/users', endpoints.createUser)

/**
* @openapi
@@ -60,8 +54,7 @@ router.post('/users', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.put('/users/:id', async (req, res) => {
return await endpoints.updateUser(res, req.params.id, req.body)})
router.put('/users/:id', endpoints.updateUser)

/**
* @openapi
@@ -77,9 +70,7 @@ router.put('/users/:id', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.patch('/users/:id/contacts', async (req, res) => {
return await endpoints.updateUserContacts(req, res, req.body)
})
router.patch('/users/:id/contacts', endpoints.updateUserContacts)

/**
* @openapi
@@ -97,8 +88,6 @@ router.patch('/users/:id/contacts', async (req, res) => {
* 500:
* description: Internal server error.
*/
router.delete('/users/:id', async (req, res) => {
return await endpoints.deleteUser(req, res, req.body)
})
router.delete('/users/:id', endpoints.deleteUser)

module.exports = router

+ 5
- 0
src/server.js Parādīt failu

@@ -7,9 +7,11 @@ const userRouter = require('./routes/user')
const tokenRouter = require('./routes/token')
const swaggerJsDoc = require("swagger-jsdoc")
const swaggerUi = require("swagger-ui-express")
const { errorLogger, errorResponder } = require('./middleware/errorHandling.js')
const cors = require('cors')
const helmet = require('helmet')


const swaggerOptions = {
swaggerDefinition: {
info: {
@@ -37,6 +39,9 @@ app.get('/', (req, res) => {
}
})

app.use(errorLogger);
app.use(errorResponder);

app.listen(port, () => {
console.log('Server is up on port ' + port)
})

Notiek ielāde…
Atcelt
Saglabāt