From 3f6bb6d00e6fb36282820a4be15403e68ea3f148 Mon Sep 17 00:00:00 2001 From: IO <320154041@pcpuma.acatlan.unam.mx> Date: Wed, 19 Jun 2024 16:18:12 -0600 Subject: [PATCH] new get test --- src/Profesor/profesor.controller.ts | 10 +++++++++- src/Profesor/profesor.service.ts | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Profesor/profesor.controller.ts b/src/Profesor/profesor.controller.ts index 85aa4fd..68e1215 100644 --- a/src/Profesor/profesor.controller.ts +++ b/src/Profesor/profesor.controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, Get, Param, ParseIntPipe, Post, Put } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, ParseIntPipe, Post, Put, Query } from '@nestjs/common'; import { ProfesorService } from './profesor.service'; import { profesorDto } from './dto/profesorDto.dto'; @@ -16,6 +16,14 @@ export class ProfesorController { return this.profesorService.findAll(); } + @Get('page') + findAllPaginated(@Query('page') page: number = 1, @Query('limit') limit: number = 10) { + page = page < 1 ? 1 : page; + limit = limit > 10 || limit < 1 ? 10 : limit; // Limitar el límite máximo a 10 por página + + return this.profesorService.findAllPaginated(page, limit); + } + @Put(':id_profesor') async postModify(@Param('id_profesor', ParseIntPipe) id_profesor: number, @Body() data: profesorDto) { return this.profesorService.modify(id_profesor, data); diff --git a/src/Profesor/profesor.service.ts b/src/Profesor/profesor.service.ts index b2cfc59..3dba275 100644 --- a/src/Profesor/profesor.service.ts +++ b/src/Profesor/profesor.service.ts @@ -99,4 +99,18 @@ export class ProfesorService { return query.getMany(); } + + async findAllPaginated(page: number, limit: number): Promise<{ profesores: Profesor[], total: number, totalPages: number }> { + const [profesores, total] = await this.profesorRepository.findAndCount({ + skip: (page - 1) * limit, + take: limit, + order: { + nombre: 'ASC', + }, + }); + + const totalPages = Math.ceil(total / limit); + + return { profesores, total, totalPages }; + } }