ÿØÿà JFIF H H ÿÛ C GIF89;
| System: Linux srv913213 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 Current Path : /var/www/talentgenesis_admin_backend/src/admin/user/ |
| Current File : /var/www/talentgenesis_admin_backend/src/admin/user/user.controller.ts |
import { Controller, Get, Post, Body, Patch, Param, Delete, Req, UseGuards, Put, Query } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto, UpdateStatusUserDto, UpdateUserDto } from './dto/user.dto';
import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
import { AuthGuard } from 'src/guards/auth.guard';
import { Roles } from 'src/decorators/role.decorator';
import { SkipThrottle } from '@nestjs/throttler';
@ApiTags('User')
@ApiBearerAuth()
@UseGuards(AuthGuard)
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) { }
@Roles('user_create')
@Post()
create(@Body() createUserDto: CreateUserDto, @Req() request: Request) {
return this.userService.create(createUserDto, request);
}
@SkipThrottle()
@Roles('user_list')
@Get('/list')
@ApiQuery({ name: 'offset', required: false })
@ApiQuery({ name: 'limit', required: false })
@ApiQuery({ name: 'sortByKey', required: false })
@ApiQuery({ name: 'sortByType', required: false })
@ApiQuery({ name: 'searchWith', required: false })
async findAll(
@Query('offset') offset: number,
@Query('limit') limit: number,
@Query('sortByKey') sortByKey: string,
@Query('sortByType') sortByType: string,
@Query('searchWith') searchWith: string = '',
@Req() request: Request
) {
limit = limit ? limit : 10;
offset = offset ? offset : 1;
return this.userService.findAllUsers(offset, limit, sortByKey, sortByType, searchWith, request);
}
@Roles('user_view')
@Get('/view/:id')
findOne(@Param('id') id: string, @Req() request: Request) {
return this.userService.findOne(+id, request);
}
@Roles('user_update')
@Put('/update')
update(@Body() updateUserDto: UpdateUserDto, @Req() request: Request) {
return this.userService.update(updateUserDto, request);
}
@Roles('user_status')
@Put('/status')
async updateStatus(@Body() body: UpdateStatusUserDto, @Req() request: Request) {
return this.userService.updateStatus(body, request)
}
@Roles('user_delete')
@Delete('/delete/:id')
remove(@Param('id') id: number, @Req() request: Request) {
return this.userService.remove(+id, request);
}
}