ÿØÿà 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/role/ |
| Current File : /var/www/talentgenesis_admin_backend/src/admin/role/role.controller.ts |
import { Controller, Get, Post, Body, Patch, Param, Delete, Req, Query, Put, UseGuards } from '@nestjs/common';
import { RoleService } from './role.service';
import { CreateRoleDto, UpdateRoleDto, UpdateRoleStatusDto } from './dto/role.dto';
import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
import { AuthGuard } from 'src/guards/auth.guard';
import { Roles } from 'src/decorators/role.decorator';
import { SkipThrottle, Throttle } from '@nestjs/throttler';
@ApiTags('Role')
@ApiBearerAuth()
@UseGuards(AuthGuard)
@Controller('role')
export class RoleController {
constructor(private readonly roleService: RoleService) { }
@SkipThrottle()
@Roles('role_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;
const userData = request['user'].user_id
return this.roleService.findAll(offset, limit, sortByKey, sortByType, searchWith, request);
}
@Roles('role_create')
@Post('/create')
create(@Body() createRoleDto: CreateRoleDto, @Req() request: Request) {
return this.roleService.create(createRoleDto, request);
}
@Roles('role_view')
@Get('/view/:id')
findOne(@Param('id') id: string, @Req() request: Request) {
return this.roleService.findOne(+id, request);
}
@Roles('role_update')
@Put('/update')
update(@Body() updateRoleDto: UpdateRoleDto, @Req() request: Request) {
return this.roleService.update(updateRoleDto, request);
}
@Roles('role_delete')
@Delete('/delete/:id')
remove(@Param('id') id: number, @Req() request: Request) {
return this.roleService.remove(+id, request);
}
@Roles('role_status')
@Put('/status')
async updateStatus(@Body() body: UpdateRoleStatusDto, @Req() request: Request) {
return this.roleService.updateStatus(body, request)
}
@Roles('role_list')
@Get('/list_role')
async roleList() {
return await this.roleService.roles()
}
}