| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- const User = require("../database/models/user")
- const { getUserValidator, getIdValidator, getUpdatedUserValidator } = require("../validators/users")
- const mediator = require('../mediator/userMediator')
-
- const getUsers = async (req, res, next) => {
- const allUsers = await User.find({})
- return res.status(200).send(allUsers)
- }
-
- const getUser = async (req, res, next) => {
- try {
- const id = req.params.id
- const errId = getIdValidator.validate(id).error
- if (errId) {
- return res.status(404).send(errId.message)
- }
- const result = await mediator.getUser(id)
-
- if (!result.succeeded) {
- return res.status(400).send(result.error)
- }
- return res.status(200).json(result.value)
- } catch (e) {
- next(e)
- }
- }
-
- const createUser = async (req, res, next) => {
- try {
- const userModel = req.body
-
- const err = getUserValidator.validate(userModel).error
- if (err) {
- return res.status(404).send(err.message)
- }
- const result = await mediator.createUser(userModel)
- if (!result.succeeded) {
- return res.status(400).send(result.error)
- }
-
- return res.status(201).json(result.value)
- } catch (e) {
- next(e)
- }
- }
-
- const updateUser = async (req, res, next) => {
- try {
- const id = req.params.id
- const errId = getIdValidator.validate(id).error
- if (errId) {
- return res.status(400).send(errId.message)
- }
-
- const objBody = req.body
-
- const err = getUpdatedUserValidator.validate(objBody).error
- if (err) {
- return res.status(400).send(err.message)
- }
- const result = await mediator.updateUser(id, objBody)
- if (!result.succeeded) {
- return res.status(400).send(result.error)
- }
- return res.status(200).send(result.value)
- } catch (e) {
- next(e)
- }
- }
-
- const deleteUser = async (req, res, next) => {
- try {
- const id = req.params.id
- const errId = getIdValidator.validate(id).error
- if (errId) {
- return res.status(400).send(errId.message)
- }
-
- const result = await mediator.deleteUser(id)
- if (!result.succeeded) {
- return res.status(400).send(result.error)
- }
- return res.status(204).send(result.value)
- } catch (e) {
- next(e)
- }
- }
-
- const updateUserContacts = async (req, res, next) => {
- try {
- const userFound = true
- if (!userFound) {
- return res.status(404).send('user not found')
- }
- if (!req.body) {
- return res.status(400).send('invalid input parameters')
- }
- return res.status(200).send('user contacts updated successfully')
- } catch (e) {
- next(e)
- }
- }
-
- module.exports = { getUsers, getUser, createUser, updateUserContacts, updateUser, deleteUser }
|