| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import {
- Controller,
- Put,
- Get,
- Body,
- Param,
- HttpStatus,
- NotFoundException,
- Delete,
- BadRequestException,
- Req,
- Post
- } from '@nestjs/common'
- import { UsersService } from './users.service'
- import { UserProfileDto } from './dto/user-profile.dto'
- import { UserUpdateDto } from './dto/user-update.dto'
- import { IUsers } from './interfaces/users.interface'
- import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
- import { HasRoles } from '../auth/roles.decorator'
- import { Role } from '../model/role.enum'
- import { IPaginationOptions } from 'nestjs-typeorm-paginate'
- import { PageRequest } from 'src/common/dto/page-request'
- import { Users } from './entities/users.entity'
- @ApiTags('users.admin')
- @Controller('/admin/users')
- @ApiBearerAuth()
- @HasRoles(Role.Admin)
- export class UsersAdminController {
- constructor(private readonly usersService: UsersService) {}
- @Post()
- public async list(@Body() page: PageRequest<Users>) {
- return await this.usersService.findAll(page)
- }
- @Get('/get')
- public async get(@Req() req) {
- const user = await this.usersService.findById(req.user.userId)
- return user
- }
- @Put('/:userId')
- public async updateUser(@Param('userId') userId: string, @Body() userUpdateDto: UserUpdateDto) {
- try {
- await this.usersService.updateUser(userId, userUpdateDto)
- return {
- message: 'User Updated successfully!',
- status: HttpStatus.OK
- }
- } catch (err) {
- throw new BadRequestException(err, 'Error: User not updated!')
- }
- }
- @Delete('/:userId')
- public async deleteUser(@Param('userId') userId: string): Promise<void> {
- await this.usersService.deleteUser(userId)
- }
- }
|