refactor: api routes

This commit is contained in:
Daniel Soares
2021-12-24 11:48:37 -03:00
parent 19aa8d2311
commit 165c26af3f
42 changed files with 622 additions and 506 deletions

View File

@@ -0,0 +1,59 @@
import { UsersService } from './users.service'
import type { NextApiRequest, NextApiResponse } from 'next'
class UsersController {
async createUser(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { username, password, role } = req.body
const { userRole } = req
const result = await usersService.createUser(username, password, role, userRole)
res.status(200).json(result)
}
async getUser(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { id: userId } = req.params
const result = await usersService.getUser(+userId)
res.status(200).json(result)
}
async getUsers(_req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const result = await usersService.getUsers()
res.status(200).json(result)
}
async getMe(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { userId } = req
const result = await usersService.getUser(+userId)
res.status(200).json(result)
}
async checkUserExists(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { username } = req.body
const result = await usersService.checkUserExists(username)
res.status(200).json({ isTaken: result })
}
async updateUser(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { id: userId } = req.params
const { oldPassword, password, role } = req.body
const { userRole } = req
const result = await usersService.updateUser(+userId, userRole, oldPassword, password, role)
res.status(200).json(result)
}
async deleteUser(req: NextApiRequest, res: NextApiResponse) {
const usersService = new UsersService()
const { id: userId } = req.params
const { userRole } = req
await usersService.deleteUser(+userId, userRole)
res.status(204).end()
}
}
export const usersController = new UsersController()