Files
api_directorio/src/Profesor/profesor.controller.ts
T

97 lines
2.5 KiB
TypeScript
Raw Normal View History

2024-07-29 19:18:06 -06:00
import {
Body,
Controller,
Delete,
Get,
2024-08-18 22:09:32 -06:00
HttpException,
2024-07-29 19:18:06 -06:00
Logger,
Param,
ParseIntPipe,
Post,
Put,
Query,
UseGuards
} from "@nestjs/common";
import { ProfesorService } from "./profesor.service";
2024-08-18 22:09:32 -06:00
import { profesorDto, UpdateProfesorImageDto } from "./dto/profesorDto.dto";
2024-07-29 19:18:06 -06:00
import { Roles } from "../permissions/roles.decorator";
import { RolesGuard } from "../permissions/roles.guard";
import { Role } from "../permissions/role.enum";
2024-08-18 22:09:32 -06:00
import { Profesor } from "./entities/profesor.entity";
2024-07-29 19:18:06 -06:00
@Controller("profesor")
2024-06-25 22:18:43 -06:00
@UseGuards(RolesGuard)
2024-06-15 17:09:19 -06:00
export class ProfesorController {
2024-07-29 19:18:06 -06:00
constructor(private profesorService: ProfesorService) {
}
2024-06-14 14:33:27 -06:00
2024-06-16 16:51:45 -06:00
@Post()
2024-07-29 19:18:06 -06:00
@Roles(Role.Responsable, Role.Admin)
2024-07-03 23:46:11 -06:00
async register(@Body() data: profesorDto) {
2024-07-29 19:18:06 -06:00
Logger.debug("register profesor");
2024-07-03 23:46:11 -06:00
return this.profesorService.register(data);
2024-06-15 17:09:19 -06:00
}
2024-06-14 14:33:27 -06:00
2024-08-18 22:09:32 -06:00
@Put(':id_profesor/image')
async updateImage(
@Param('id_profesor') id_profesor: number,
@Body() updateProfesorImageDto: UpdateProfesorImageDto,
): Promise<Profesor> {
const { fotografia } = updateProfesorImageDto;
const profesor = await this.profesorService.findOne(id_profesor);
if (!profesor) {
throw new HttpException('Profesor not found', 404);
}
profesor.fotografia = fotografia;
return this.profesorService.update(profesor);
}
2024-06-16 16:51:45 -06:00
@Get()
findAll() {
2024-07-29 19:18:06 -06:00
Logger.debug("findAllProfesors");
2024-06-16 16:51:45 -06:00
return this.profesorService.findAll();
}
2024-07-29 19:18:06 -06:00
@Get("page")
findAllPaginated(@Query("page") page: number = 1, @Query("limit") limit: number = 10, @Query() filters: any) {
try {
Logger.debug("Page Profesors");
page = page < 1 ? 1 : page;
limit = limit > 10 || limit < 1 ? 10 : limit;
return this.profesorService.findAllPaginated(page, limit, filters);
} catch (err) {
Logger.error("profesor controller ", err.error);
return [];
}
2024-06-19 16:18:12 -06:00
}
2024-07-29 19:18:06 -06:00
@Put(":id_profesor")
@Roles(Role.Responsable, Role.Admin)
async modify(@Param("id_profesor", ParseIntPipe) id_profesor: number, @Body() data: profesorDto) {
Logger.debug("put Profesors by id");
2024-06-15 17:09:19 -06:00
return this.profesorService.modify(id_profesor, data);
}
2024-06-14 14:33:27 -06:00
2024-07-29 19:18:06 -06:00
@Delete(":id_profesor")
@Roles(Role.Responsable, Role.Admin)
async remove(@Param("id_profesor", ParseIntPipe) id_profesor: number) {
Logger.debug("delete Profesors by id");
2024-06-15 17:09:19 -06:00
return this.profesorService.remove(id_profesor);
}
2024-06-14 14:33:27 -06:00
2024-07-29 19:18:06 -06:00
@Get(":id_profesor")
async profile(@Param("id_profesor", ParseIntPipe) id_profesor: number) {
Logger.debug("get Profesors by id");
2024-06-15 17:09:19 -06:00
return this.profesorService.profile(id_profesor);
}
2024-06-14 14:33:27 -06:00
}