mirror of
https://github.com/dsoaress/link-free.git
synced 2026-08-17 06:56:04 +01:00
60 lines
2.0 KiB
TypeScript
60 lines
2.0 KiB
TypeScript
|
|
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()
|