54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { Body, Controller, Delete, Get, Param, ParseIntPipe, Post, Put, Query,UseGuards } from '@nestjs/common';
|
|
import { ProfesorService } from './profesor.service';
|
|
import { profesorDto } from './dto/profesorDto.dto';
|
|
import {Roles} from '../permissions/roles.decorator'
|
|
import {RolesGuard} from '../permissions/roles.guard'
|
|
import {Role} from '../permissions/role.enum'
|
|
|
|
@Controller('profesor')
|
|
@UseGuards(RolesGuard)
|
|
export class ProfesorController {
|
|
constructor(private profesorService: ProfesorService) {}
|
|
|
|
@Post()
|
|
@Roles(Role.Responsable,Role.Admin)
|
|
async register(@Body() data: profesorDto) {
|
|
return this.profesorService.register(data);
|
|
}
|
|
|
|
@Get()
|
|
findAll() {
|
|
return this.profesorService.findAll();
|
|
}
|
|
|
|
@Get('page')
|
|
findAllPaginated(@Query('page') page: number = 1, @Query('limit') limit: number = 10, @Query() filters: any) {
|
|
page = page < 1 ? 1 : page;
|
|
limit = limit > 10 || limit < 1 ? 10 : limit;
|
|
|
|
return this.profesorService.findAllPaginated(page, limit, filters);
|
|
}
|
|
|
|
@Put(':id_profesor')
|
|
@Roles(Role.Responsable,Role.Admin)
|
|
async modify(@Param('id_profesor', ParseIntPipe) id_profesor: number, @Body() data: profesorDto) {
|
|
return this.profesorService.modify(id_profesor, data);
|
|
}
|
|
|
|
@Delete(':id_profesor')
|
|
@Roles(Role.Responsable,Role.Admin)
|
|
async remove(@Param('id_profesor', ParseIntPipe) id_profesor: number) {
|
|
return this.profesorService.remove(id_profesor);
|
|
}
|
|
|
|
@Get(':id_profesor')
|
|
async profile(@Param('id_profesor', ParseIntPipe) id_profesor: number) {
|
|
return this.profesorService.profile(id_profesor);
|
|
}
|
|
|
|
@Post('filter')
|
|
async filter(@Body() data: profesorDto) {
|
|
return this.profesorService.filter(data);
|
|
}
|
|
}
|