const express = require('express') const User = require('../models/user') const endpoints = require('../endpoints/user') const router = new express.Router() const app = express() const auth = require('../middleware/auth') /** * @openapi * /users: * get: * description: Get all users * tags: [User] * responses: * 200: * description: Success! * 400: * description: You sent bad request. * 500: * description: Internal server error. */ router.get('/users', async (req, res) => { return await endpoints.getAll(req, res) }) /** * @openapi * /users/:id: * get: * description: Get user by id * tags: [User] * responses: * 200: * description: Success! * 400: * description: You sent bad request. * 500: * description: Internal server error. */ router.get('/users/:id', async (req, res) => { return await endpoints.getById(req, res, req.params.id) }) /** * @openapi * /users/: * post: * description: Create user * tags: [User] * responses: * 201: * description: User successfully created! * 400: * description: You sent bad request. * 500: * description: Internal server error. */ router.post('/users', async (req, res) => { return await endpoints.create(req, res, req.body) }) /** * @openapi * /users/: * put: * description: Update user * tags: [User] * responses: * 200: * description: User updated successfully! * 400: * description: Invalid input parameters. * 404: * description: User not found. * 500: * description: Internal server error. */ router.put('/users', async (req, res) => { return await endpoints.updateUser(req, res, req.body) }) /** * @openapi * /users/:id/contacts: * patch: * description: Get all users * tags: [User] * responses: * 200: * description: User contacts updated successfully! * 404: * description: User not found. * 500: * description: Internal server error. */ router.patch('/users/:id/contacts', async (req, res) => { return await endpoints.updateUserContacts(req, res, req.body) }) /** * @openapi * /users/:id: * patch: * description: Delete user * tags: [User] * responses: * 204: * description: User removed successfully! * 400: * description: Id not provided. * 404: * description: User not found. * 500: * description: Internal server error. */ router.delete('/users/:id', async (req, res) => { return await endpoints.deleteUser(req, res, req.body) }) module.exports = router