import { Controller, Get, Post, Body, Param, UseGuards, Delete, Patch, } from '@nestjs/common'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { RolesGuard } from '../auth/guards/roles.guard'; import { Roles } from '../auth/decorators/roles.decorator'; import { Role } from '../../common/enums/role.enum'; import { UsersService } from './users.service'; import { CreateUserDto } from './dtos/create-user.dto'; // import { UpdateUserDto } from './dtos/update-user.dto'; @Controller('users') // @UseGuards(JwtAuthGuard, RolesGuard) export class UsersController { constructor(private readonly usersService: UsersService) {} @Post() @Roles(Role.ADMIN) // Only admin can create users through this endpoint create(@Body() createUserDto: CreateUserDto) { return this.usersService.createUser(createUserDto); } @Get() // @Roles(Role.ADMIN) findAll() { return this.usersService.findAll(); } @Get() findByEmail(email: string) { return this.usersService.findByEmail(email); } // @Get(':id') // @Roles(Role.ADMIN) // findOne(@Param('id') id: string) { // return this.usersService.findById(id); // } // @Patch(':id') // @Roles(Role.ADMIN) // update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) { // return this.usersService.update(id, updateUserDto); // } // @Delete(':id') // @Roles(Role.ADMIN) // remove(@Param('id') id: string) { // return this.usersService.remove(id); // } }