Files
api_directorio/src/Profesor/profesor.controller.ts
T
2024-06-25 22:18:43 -06:00

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);
}
}