From 3e08a6a6788aa2a6c0717bc4da9ee5697a34906b Mon Sep 17 00:00:00 2001 From: IO Date: Wed, 19 Jun 2024 18:18:07 -0600 Subject: [PATCH 1/4] filter --- src/Profesor/profesor.service.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Profesor/profesor.service.ts b/src/Profesor/profesor.service.ts index da2ff75..6336f5f 100644 --- a/src/Profesor/profesor.service.ts +++ b/src/Profesor/profesor.service.ts @@ -67,7 +67,7 @@ export class ProfesorService { } //brings teachers by filter - async filter(filterDto: ProfesorFilterDto): Promise { + async filter(filterDto: profesorDto): Promise { const query = this.profesorRepository.createQueryBuilder('profesor'); if (filterDto.nombre) { @@ -78,11 +78,6 @@ export class ProfesorService { query.andWhere('profesor.id_categoria = :id_categoria', { id_categoria: filterDto.id_categoria }); } - if (filterDto.id_carrera !== undefined) { - query.innerJoin('profesor.asignaturaCarreraProfesores', 'acp') - .andWhere('acp.id_carrera = :id_carrera', { id_carrera: filterDto.id_carrera }); - } - if (filterDto.extension) { query.andWhere('profesor.extension like :extension', { extension: `%${filterDto.extension}%` }); } From 4726083dea30bce6b1471194e06b151712d6c574 Mon Sep 17 00:00:00 2001 From: IO Date: Wed, 19 Jun 2024 18:35:21 -0600 Subject: [PATCH 2/4] delete unnecessary things --- src/Profesor/profesor.controller.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Profesor/profesor.controller.ts b/src/Profesor/profesor.controller.ts index 9ad13c1..2aea7f0 100644 --- a/src/Profesor/profesor.controller.ts +++ b/src/Profesor/profesor.controller.ts @@ -1,7 +1,6 @@ import { Body, Controller, Delete, Get, Param, ParseIntPipe, Post, Put } from '@nestjs/common'; import { ProfesorService } from './profesor.service'; import { profesorDto } from './dto/profesorDto.dto'; -import { ProfesorFilterDto } from './dto/profesorFilterDto.dto'; @Controller('profesor') export class ProfesorController { From c5e900915c4bd35814d86f487f3888e08fe3d044 Mon Sep 17 00:00:00 2001 From: IO Date: Thu, 20 Jun 2024 19:02:11 -0600 Subject: [PATCH 3/4] filter with page --- src/Profesor/profesor.controller.ts | 6 +++--- src/Profesor/profesor.service.ts | 32 +++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Profesor/profesor.controller.ts b/src/Profesor/profesor.controller.ts index 68e1215..a9c74c8 100644 --- a/src/Profesor/profesor.controller.ts +++ b/src/Profesor/profesor.controller.ts @@ -17,11 +17,11 @@ export class ProfesorController { } @Get('page') - findAllPaginated(@Query('page') page: number = 1, @Query('limit') limit: number = 10) { + 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; // Limitar el límite máximo a 10 por página + limit = limit > 10 || limit < 1 ? 10 : limit; - return this.profesorService.findAllPaginated(page, limit); + return this.profesorService.findAllPaginated(page, limit, filters); } @Put(':id_profesor') diff --git a/src/Profesor/profesor.service.ts b/src/Profesor/profesor.service.ts index 3dba275..56c8d28 100644 --- a/src/Profesor/profesor.service.ts +++ b/src/Profesor/profesor.service.ts @@ -100,14 +100,30 @@ 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', - }, - }); + async findAllPaginated(page: number, limit: number, filters: any): Promise<{ profesores: Profesor[], total: number, totalPages: number }> { + const query = this.profesorRepository.createQueryBuilder('profesor'); + + if (filters.nombre) { + query.andWhere('profesor.nombre LIKE :nombre', { nombre: `%${filters.nombre}%` }); + } + + if (filters.adscripcion) { + query.andWhere('profesor.adscripcion = :adscripcion', { adscripcion: filters.adscripcion }); + } + + if (filters.categoria) { + query.andWhere('profesor.categoria = :categoria', { categoria: filters.categoria }); + } + + if (filters.edificio) { + query.andWhere('profesor.edificio = :edificio', { edificio: filters.edificio }); + } + + const [profesores, total] = await query + .skip((page - 1) * limit) + .take(limit) + .orderBy('profesor.nombre', 'ASC') + .getManyAndCount(); const totalPages = Math.ceil(total / limit); From 9077c35c76875676be1ea2cc095a969b1f327f3a Mon Sep 17 00:00:00 2001 From: IO Date: Thu, 20 Jun 2024 20:03:17 -0600 Subject: [PATCH 4/4] adscripcion,categoria,edificio --- src/adscripcion/adscripcion.controller.ts | 12 ++++++++++++ src/adscripcion/adscripcion.service.ts | 16 ++++++++++++++++ src/adscripcion/edificio.controller.spec.ts | 18 ++++++++++++++++++ src/adscripcion/edificio.service.spec.ts | 18 ++++++++++++++++++ src/categoria/categiria.controller.ts | 12 ++++++++++++ src/categoria/categoria.service.ts | 16 ++++++++++++++++ src/categoria/edificio.controller.spec.ts | 18 ++++++++++++++++++ src/categoria/edificio.service.spec.ts | 18 ++++++++++++++++++ src/edificio/edificio.controller.spec.ts | 18 ++++++++++++++++++ src/edificio/edificio.controller.ts | 12 ++++++++++++ src/edificio/edificio.service.spec.ts | 18 ++++++++++++++++++ src/edificio/edificio.service.ts | 16 ++++++++++++++++ 12 files changed, 192 insertions(+) create mode 100644 src/adscripcion/adscripcion.controller.ts create mode 100644 src/adscripcion/adscripcion.service.ts create mode 100644 src/adscripcion/edificio.controller.spec.ts create mode 100644 src/adscripcion/edificio.service.spec.ts create mode 100644 src/categoria/categiria.controller.ts create mode 100644 src/categoria/categoria.service.ts create mode 100644 src/categoria/edificio.controller.spec.ts create mode 100644 src/categoria/edificio.service.spec.ts create mode 100644 src/edificio/edificio.controller.spec.ts create mode 100644 src/edificio/edificio.controller.ts create mode 100644 src/edificio/edificio.service.spec.ts create mode 100644 src/edificio/edificio.service.ts diff --git a/src/adscripcion/adscripcion.controller.ts b/src/adscripcion/adscripcion.controller.ts new file mode 100644 index 0000000..f35a4b0 --- /dev/null +++ b/src/adscripcion/adscripcion.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AdscripcionService } from './adscripcion.service'; + +@Controller('adscripcion') +export class AdscripcionController { + constructor(private readonly adscripcionService: AdscripcionService) {} + + @Get() + findAll() { + return this.adscripcionService.findAll(); + } +} diff --git a/src/adscripcion/adscripcion.service.ts b/src/adscripcion/adscripcion.service.ts new file mode 100644 index 0000000..6ad1da0 --- /dev/null +++ b/src/adscripcion/adscripcion.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Adscripcion } from './entities/adscripcion.entity'; + +@Injectable() +export class AdscripcionService { + constructor( + @InjectRepository(Adscripcion) + private adscripcionRepository: Repository, + ) {} + + async findAll(): Promise { + return this.adscripcionRepository.find(); + } +} diff --git a/src/adscripcion/edificio.controller.spec.ts b/src/adscripcion/edificio.controller.spec.ts new file mode 100644 index 0000000..50d3736 --- /dev/null +++ b/src/adscripcion/edificio.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AdscripcionController } from './adscripcion.controller'; // Asumiendo que el controlador se llama EdificioController + +describe('EdificioController', () => { + let controller: AdscripcionController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [AdscripcionController], + }).compile(); + + controller = module.get(AdscripcionController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/adscripcion/edificio.service.spec.ts b/src/adscripcion/edificio.service.spec.ts new file mode 100644 index 0000000..71b2adf --- /dev/null +++ b/src/adscripcion/edificio.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AdscripcionService } from './adscripcion.service'; // Asegúrate de importar el servicio correcto + +describe('EdificioService', () => { + let service: AdscripcionService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [AdscripcionService], // Asegúrate de incluir el servicio correcto aquí + }).compile(); + + service = module.get(AdscripcionService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/categoria/categiria.controller.ts b/src/categoria/categiria.controller.ts new file mode 100644 index 0000000..0e51ac3 --- /dev/null +++ b/src/categoria/categiria.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { CategoriaService } from './categoria.service'; + +@Controller('categoria') +export class CategoriaController { + constructor(private readonly categoriaService: CategoriaService) {} + + @Get() + findAll() { + return this.categoriaService.findAll(); + } +} diff --git a/src/categoria/categoria.service.ts b/src/categoria/categoria.service.ts new file mode 100644 index 0000000..5456729 --- /dev/null +++ b/src/categoria/categoria.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Categoria } from './entities/categoria.entity'; + +@Injectable() +export class CategoriaService { + constructor( + @InjectRepository(Categoria) + private categoriaRepository: Repository, + ) {} + + async findAll(): Promise { + return this.categoriaRepository.find(); + } +} diff --git a/src/categoria/edificio.controller.spec.ts b/src/categoria/edificio.controller.spec.ts new file mode 100644 index 0000000..a45b3c2 --- /dev/null +++ b/src/categoria/edificio.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CategoriaController } from './categiria.controller'; // Asumiendo que el controlador se llama EdificioController + +describe('EdificioController', () => { + let controller: CategoriaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CategoriaController], + }).compile(); + + controller = module.get(CategoriaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/categoria/edificio.service.spec.ts b/src/categoria/edificio.service.spec.ts new file mode 100644 index 0000000..7018274 --- /dev/null +++ b/src/categoria/edificio.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CategoriaService } from './categoria.service'; // Asegúrate de importar el servicio correcto + +describe('EdificioService', () => { + let service: CategoriaService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [CategoriaService], // Asegúrate de incluir el servicio correcto aquí + }).compile(); + + service = module.get(CategoriaService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/edificio/edificio.controller.spec.ts b/src/edificio/edificio.controller.spec.ts new file mode 100644 index 0000000..e1176d2 --- /dev/null +++ b/src/edificio/edificio.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EdificioController } from './edificio.controller'; // Asumiendo que el controlador se llama EdificioController + +describe('EdificioController', () => { + let controller: EdificioController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [EdificioController], + }).compile(); + + controller = module.get(EdificioController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/edificio/edificio.controller.ts b/src/edificio/edificio.controller.ts new file mode 100644 index 0000000..5d992a2 --- /dev/null +++ b/src/edificio/edificio.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { EdificioService } from './edificio.service'; + +@Controller('categoria') +export class EdificioController { + constructor(private readonly edificioService: EdificioService) {} + + @Get() + findAll() { + return this.edificioService.findAll(); + } +} diff --git a/src/edificio/edificio.service.spec.ts b/src/edificio/edificio.service.spec.ts new file mode 100644 index 0000000..9c7704c --- /dev/null +++ b/src/edificio/edificio.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EdificioService } from './edificio.service'; // Asegúrate de importar el servicio correcto + +describe('EdificioService', () => { + let service: EdificioService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [EdificioService], // Asegúrate de incluir el servicio correcto aquí + }).compile(); + + service = module.get(EdificioService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/edificio/edificio.service.ts b/src/edificio/edificio.service.ts new file mode 100644 index 0000000..39b2028 --- /dev/null +++ b/src/edificio/edificio.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Edificio } from './entities/edificio.entity'; + +@Injectable() +export class EdificioService { + constructor( + @InjectRepository(Edificio) + private categoriaRepository: Repository, + ) {} + + async findAll(): Promise { + return this.categoriaRepository.find(); + } +}