Files
link-free/src/modules/users/users.controller.ts

60 lines
2.0 KiB
TypeScript
Raw Normal View History

2021-12-24 11:48:37 -03:00
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()