diff --git a/src/app.module.ts b/src/app.module.ts index 7040cc6..3c4f4e4 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -24,7 +24,6 @@ import { MultaModule } from './multa/multa.module'; import { NodemailerModule } from './nodemailer/nodemailer.module'; import { OperadorModule } from './operador/operador.module'; import { PrestamoModule } from './prestamo/prestamo.module'; -import { ProgramaModule } from './programa/programa.module'; import { StatusModule } from './status/status.module'; import { TipoUsuarioModule } from './tipo-usuario/tipo-usuario.module'; import { UploadFileModule } from './upload-file/upload-file.module'; @@ -52,7 +51,7 @@ import { Multa } from './multa/entity/multa.entity'; import { Nivel } from './institucion-carrera/entity/nivel.entity'; import { Operador } from './operador/entity/operador.entity'; import { Prestamo } from './prestamo/entity/prestamo.entity'; -import { Programa } from './programa/entity/programa.entity'; +import { Programa } from './institucion-programa/entity/programa.entity'; import { Status } from './status/entity/status.entity'; import { TipoCarrito } from './institucion-tipo-carrito/entity/tipo-carrito.entity'; import { TipoEntrada } from './institucion-tipo-entrada/entity/tipo-entrada.entity'; @@ -128,7 +127,6 @@ import { SoapClientModule } from './soap-client/soap-client.module'; NodemailerModule, OperadorModule, PrestamoModule, - ProgramaModule, StatusModule, TipoUsuarioModule, UploadFileModule, diff --git a/src/carrera-programa/carrera-programa.module.ts b/src/carrera-programa/carrera-programa.module.ts index 4102833..b3fc3de 100644 --- a/src/carrera-programa/carrera-programa.module.ts +++ b/src/carrera-programa/carrera-programa.module.ts @@ -3,16 +3,16 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { CarreraProgramaController } from './carrera-programa.controller'; import { CarreraProgramaService } from './carrera-programa.service'; import { CarreraPrograma } from './entity/carrera-programa.entity'; -import { InstitucionModule } from 'src/institucion/institucion.module'; +import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionCarreraModule } from '../institucion-carrera/institucion-carrera.module'; -import { ProgramaModule } from '../programa/programa.module'; +import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module'; @Module({ imports: [ InstitucionModule, InstitucionCarreraModule, TypeOrmModule.forFeature([CarreraPrograma]), - ProgramaModule, + InstitucionProgramaModule, ], controllers: [CarreraProgramaController], providers: [CarreraProgramaService], diff --git a/src/carrera-programa/carrera-programa.service.ts b/src/carrera-programa/carrera-programa.service.ts index e8a75d0..36f2384 100644 --- a/src/carrera-programa/carrera-programa.service.ts +++ b/src/carrera-programa/carrera-programa.service.ts @@ -8,7 +8,7 @@ import { Repository } from 'typeorm'; import { CarreraPrograma } from './entity/carrera-programa.entity'; import { InstitucionService } from '../institucion/institucion.service'; import { InstitucionCarreraService } from '../institucion-carrera/institucion-carrera.service'; -import { ProgramaService } from '../programa/programa.service'; +import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service'; @Injectable() export class CarreraProgramaService { @@ -17,14 +17,16 @@ export class CarreraProgramaService { private repository: Repository, private institucionService: InstitucionService, private institucionCarreraService: InstitucionCarreraService, - private programaService: ProgramaService, + private institucionProgramaService: InstitucionProgramaService, ) {} async create(id_institucion_carrera: number, id_programa: number) { const carrera = await this.institucionCarreraService.findById( id_institucion_carrera, ); - const programa = await this.programaService.findById(id_programa); + const programa = await this.institucionProgramaService.findById( + id_programa, + ); return this.repository .findOne({ carrera, programa }) diff --git a/src/carrera-programa/entity/carrera-programa.entity.ts b/src/carrera-programa/entity/carrera-programa.entity.ts index 7ee31db..5c5a87a 100644 --- a/src/carrera-programa/entity/carrera-programa.entity.ts +++ b/src/carrera-programa/entity/carrera-programa.entity.ts @@ -1,6 +1,6 @@ import { Entity, PrimaryGeneratedColumn, ManyToOne, JoinColumn } from 'typeorm'; import { InstitucionCarrera } from '../../institucion-carrera/entity/institucion-carrera.entity'; -import { Programa } from '../../programa/entity/programa.entity'; +import { Programa } from '../../institucion-programa/entity/programa.entity'; @Entity() export class CarreraPrograma { diff --git a/src/carrito/carrito.service.ts b/src/carrito/carrito.service.ts index 5a1c241..e5db54f 100644 --- a/src/carrito/carrito.service.ts +++ b/src/carrito/carrito.service.ts @@ -10,7 +10,7 @@ import { InstitucionTipoCarrito } from '../institucion-tipo-carrito/entity/insti import { Modulo } from '../modulo/entity/modulo.entity'; import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service'; import { ModuloService } from '../modulo/modulo.service'; -import { TipoCarrito } from 'src/institucion-tipo-carrito/entity/tipo-carrito.entity'; +import { TipoCarrito } from '../institucion-tipo-carrito/entity/tipo-carrito.entity'; @Injectable() export class CarritoService { diff --git a/src/equipo-programa/entity/equipo-programa.entity.ts b/src/equipo-programa/entity/equipo-programa.entity.ts index ecbc21c..9b6a36b 100644 --- a/src/equipo-programa/entity/equipo-programa.entity.ts +++ b/src/equipo-programa/entity/equipo-programa.entity.ts @@ -1,6 +1,6 @@ import { Entity, PrimaryGeneratedColumn, ManyToOne, JoinColumn } from 'typeorm'; import { Equipo } from '../../equipo/entity/equipo.entity'; -import { Programa } from '../../programa/entity/programa.entity'; +import { Programa } from '../../institucion-programa/entity/programa.entity'; @Entity() export class EquipoPrograma { diff --git a/src/programa/dto/programa-create.dto.ts b/src/institucion-programa/dto/programa-create.dto.ts similarity index 100% rename from src/programa/dto/programa-create.dto.ts rename to src/institucion-programa/dto/programa-create.dto.ts diff --git a/src/institucion-programa/entity/institucion-programa.entity.ts b/src/institucion-programa/entity/institucion-programa.entity.ts index 6c1c285..fbb0e3f 100644 --- a/src/institucion-programa/entity/institucion-programa.entity.ts +++ b/src/institucion-programa/entity/institucion-programa.entity.ts @@ -6,7 +6,7 @@ import { PrimaryGeneratedColumn, } from 'typeorm'; import { Institucion } from '../../institucion/entity/institucion.entity'; -import { Programa } from '../../programa/entity/programa.entity'; +import { Programa } from './programa.entity'; @Entity() export class InstitucionPrograma { diff --git a/src/programa/entity/programa.entity.ts b/src/institucion-programa/entity/programa.entity.ts similarity index 88% rename from src/programa/entity/programa.entity.ts rename to src/institucion-programa/entity/programa.entity.ts index bdbe6f2..1bb1034 100644 --- a/src/programa/entity/programa.entity.ts +++ b/src/institucion-programa/entity/programa.entity.ts @@ -1,7 +1,7 @@ import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { CarreraPrograma } from '../../carrera-programa/entity/carrera-programa.entity'; import { EquipoPrograma } from '../../equipo-programa/entity/equipo-programa.entity'; -import { InstitucionPrograma } from '../../institucion-programa/entity/institucion-programa.entity'; +import { InstitucionPrograma } from './institucion-programa.entity'; @Entity() export class Programa { diff --git a/src/institucion-programa/institucion-programa.controller.ts b/src/institucion-programa/institucion-programa.controller.ts index 5351935..0391f80 100644 --- a/src/institucion-programa/institucion-programa.controller.ts +++ b/src/institucion-programa/institucion-programa.controller.ts @@ -1,4 +1,26 @@ -import { Controller } from '@nestjs/common'; +import { Body, Controller, Get, Post } from '@nestjs/common'; +import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { InstitucionProgramaService } from './institucion-programa.service'; +import { ProgramaCreateDto } from '../institucion-programa/dto/programa-create.dto'; @Controller('institucion-programa') -export class InstitucionProgramaController {} +@ApiTags('institucion-programa') +export class InstitucionProgramaController { + constructor(private institucionProgramaService: InstitucionProgramaService) {} + + @Post() + @ApiOperation({ description: 'Endpoint que crea un programa nuevo.' }) + @ApiBody({ + description: 'Es obligatorio mandar la varible programa.', + examples: { ejemplo: { value: { programa: '' } } }, + }) + create(@Body() body: ProgramaCreateDto) { + return this.institucionProgramaService.create(body.programa); + } + + @Get() + @ApiOperation({ description: 'Endpoint que retorna todos los programas.' }) + get() { + return this.institucionProgramaService.findAll(); + } +} diff --git a/src/institucion-programa/institucion-programa.module.ts b/src/institucion-programa/institucion-programa.module.ts index d5d1e9a..0eb27b5 100644 --- a/src/institucion-programa/institucion-programa.module.ts +++ b/src/institucion-programa/institucion-programa.module.ts @@ -3,10 +3,12 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { InstitucionProgramaController } from './institucion-programa.controller'; import { InstitucionProgramaService } from './institucion-programa.service'; import { InstitucionPrograma } from './entity/institucion-programa.entity'; +import { Programa } from './entity/programa.entity'; @Module({ - imports: [TypeOrmModule.forFeature([InstitucionPrograma])], + imports: [TypeOrmModule.forFeature([InstitucionPrograma, Programa])], controllers: [InstitucionProgramaController], providers: [InstitucionProgramaService], + exports: [InstitucionProgramaService], }) export class InstitucionProgramaModule {} diff --git a/src/institucion-programa/institucion-programa.service.ts b/src/institucion-programa/institucion-programa.service.ts index c192d22..784a63f 100644 --- a/src/institucion-programa/institucion-programa.service.ts +++ b/src/institucion-programa/institucion-programa.service.ts @@ -1,12 +1,51 @@ -import { Injectable } from '@nestjs/common'; +import { + ConflictException, + Injectable, + NotFoundException, +} from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { InstitucionPrograma } from './entity/institucion-programa.entity'; +import { Programa } from './entity/programa.entity'; @Injectable() export class InstitucionProgramaService { constructor( @InjectRepository(InstitucionPrograma) - private repository: Repository, + private institucionProgramaRepository: Repository, + @InjectRepository(Programa) + private programaRepository: Repository, ) {} + + create(programa: string) { + return this.programaRepository + .findOne({ programa }) + .then((existePrograma) => { + if (existePrograma) + throw new ConflictException('Ya existe este programa.'); + return this.programaRepository.save( + this.programaRepository.create({ programa }), + ); + }) + .then((_) => ({ message: 'Se creo correctamente el programa.' })); + } + + findAll() { + return this.programaRepository.find(); + } + + findById(id_programa: number) { + return this.programaRepository.findOne({ id_programa }).then((programa) => { + if (!programa) throw new NotFoundException('No existe este programa.'); + return programa; + }); + } + + findByPrograma(programa: string, validarNoExiste = true) { + return this.programaRepository.findOne({ programa }).then((programa) => { + if (validarNoExiste && !programa) + throw new NotFoundException('No existe este programa.'); + return programa; + }); + } } diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts index 75682e6..de63fae 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts @@ -5,7 +5,7 @@ import { } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { Institucion } from 'src/institucion/entity/institucion.entity'; +import { Institucion } from '../institucion/entity/institucion.entity'; import { InstitucionTipoCarrito } from './entity/institucion-tipo-carrito.entity'; import { TipoCarrito } from './entity/tipo-carrito.entity'; import { InstitucionService } from '../institucion/institucion.service'; diff --git a/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts b/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts index 9e647d9..2cd496e 100644 --- a/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts +++ b/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts @@ -1,7 +1,7 @@ import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.service'; -import { IdInstitucionDto } from 'src/dto/id-institucion.dto'; +import { IdInstitucionDto } from '../dto/id-institucion.dto'; import { InstitucionTipoEntradaCreateDto } from './dto/institucion-tipo-entrada-create.dto'; import { InstitucionTipoEntradaUpdateDto } from './dto/institucion-tipo-entrada-update.dto'; diff --git a/src/programa/programa.controller.spec.ts b/src/programa/programa.controller.spec.ts deleted file mode 100644 index 4b24858..0000000 --- a/src/programa/programa.controller.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ProgramaController } from './programa.controller'; - -describe('ProgramaController', () => { - let controller: ProgramaController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [ProgramaController], - }).compile(); - - controller = module.get(ProgramaController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/src/programa/programa.controller.ts b/src/programa/programa.controller.ts deleted file mode 100644 index 54962df..0000000 --- a/src/programa/programa.controller.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Body, Controller, Get, Post, Query } from '@nestjs/common'; -import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger'; -import { ProgramaService } from './programa.service'; -import { ProgramaCreateDto } from './dto/programa-create.dto'; - -@Controller('programa') -@ApiTags('programa') -export class ProgramaController { - constructor(private programaService: ProgramaService) {} - - @Post() - @ApiOperation({ description: 'Endpoint que crea un programa nuevo.' }) - @ApiBody({ - description: 'Es obligatorio mandar la varible programa.', - examples: { ejemplo: { value: { programa: '' } } }, - }) - create(@Body() body: ProgramaCreateDto) { - return this.programaService.create(body.programa); - } - - @Get() - @ApiOperation({ description: 'Endpoint que retorna todos los programas.' }) - get() { - return this.programaService.findAll(); - } -} diff --git a/src/programa/programa.module.ts b/src/programa/programa.module.ts deleted file mode 100644 index a5d426d..0000000 --- a/src/programa/programa.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; -import { ProgramaController } from './programa.controller'; -import { ProgramaService } from './programa.service'; -import { Programa } from './entity/programa.entity'; - -@Module({ - imports: [TypeOrmModule.forFeature([Programa])], - controllers: [ProgramaController], - providers: [ProgramaService], - exports: [ProgramaService], -}) -export class ProgramaModule {} diff --git a/src/programa/programa.service.spec.ts b/src/programa/programa.service.spec.ts deleted file mode 100644 index 0cacbee..0000000 --- a/src/programa/programa.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ProgramaService } from './programa.service'; - -describe('ProgramaService', () => { - let service: ProgramaService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ProgramaService], - }).compile(); - - service = module.get(ProgramaService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/src/programa/programa.service.ts b/src/programa/programa.service.ts deleted file mode 100644 index 10de263..0000000 --- a/src/programa/programa.service.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { ConflictException, Injectable, NotFoundException } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Repository } from 'typeorm'; -import { Programa } from './entity/programa.entity'; - -@Injectable() -export class ProgramaService { - constructor( - @InjectRepository(Programa) private repository: Repository, - ) {} - - create(programa: string) { - return this.repository - .findOne({ programa }) - .then((existePrograma) => { - if (existePrograma) - throw new ConflictException('Ya existe este programa.'); - return this.repository.save(this.repository.create({ programa })); - }) - .then((_) => ({ message: 'Se creo correctamente el programa.' })); - } - - findAll() { - return this.repository.find(); - } - - findById(id_programa: number) { - return this.repository.findOne({ id_programa }).then((programa) => { - if(!programa) throw new NotFoundException('No existe este programa.') - return programa - }) - } - - findByPrograma(programa: string, validarNoExiste = true) { - return this.repository.findOne({ programa }).then((programa) => { - if (validarNoExiste && !programa) - throw new NotFoundException('No existe este usuario.'); - return programa; - }); - } -} diff --git a/src/upload-file/upload-file.module.ts b/src/upload-file/upload-file.module.ts index d62b555..6c0a8de 100644 --- a/src/upload-file/upload-file.module.ts +++ b/src/upload-file/upload-file.module.ts @@ -2,13 +2,13 @@ import { ConflictException, Module } from '@nestjs/common'; import { MulterModule } from '@nestjs/platform-express'; import { UploadFileController } from './upload-file.controller'; import { UploadFileService } from './upload-file.service'; +import { CarritoModule } from '../carrito/carrito.module'; import { EquipoModule } from '../equipo/equipo.module'; import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionCarreraModule } from '../institucion-carrera/institucion-carrera.module'; +import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module'; import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module'; import { UsuarioModule } from '../usuario/usuario.module'; -import { ProgramaModule } from '../programa/programa.module'; -import { CarritoModule } from '../carrito/carrito.module'; @Module({ imports: [ @@ -16,6 +16,7 @@ import { CarritoModule } from '../carrito/carrito.module'; EquipoModule, InstitucionModule, InstitucionCarreraModule, + InstitucionProgramaModule, MulterModule.register({ dest: './upload', fileFilter: (req, file, cb) => { @@ -27,7 +28,6 @@ import { CarritoModule } from '../carrito/carrito.module'; return cb(null, true); }, }), - ProgramaModule, TipoUsuarioModule, UsuarioModule, ], diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 6eba9bc..3f4b48f 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as csvtojson from 'csvtojson'; import { BadRequestException, Injectable } from '@nestjs/common'; import { Institucion } from '../institucion/entity/institucion.entity'; -import { InstitucionCarrera } from 'src/institucion-carrera/entity/institucion-carrera.entity'; +import { InstitucionCarrera } from '../institucion-carrera/entity/institucion-carrera.entity'; import { TipoUsuario } from '../tipo-usuario/entity/tipo-usuario.entity'; import { EquipoService } from '../equipo/equipo.service'; import { InstitucionService } from '../institucion/institucion.service'; @@ -10,7 +10,7 @@ import { InstitucionCarreraService } from '../institucion-carrera/institucion-ca import { CarritoService } from '../carrito/carrito.service'; import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service'; import { UsuarioService } from '../usuario/usuario.service'; -import { ProgramaService } from '../programa/programa.service'; +import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service'; import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto'; import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto'; @@ -23,7 +23,7 @@ export class UploadFileService { private carritoService: CarritoService, private tipoUsuarioService: TipoUsuarioService, private usuarioService: UsuarioService, - private programaService: ProgramaService, + private institucionProgramaService: InstitucionProgramaService, ) {} //programa y status async createEquipos( @@ -74,7 +74,7 @@ export class UploadFileService { continue; } - const programa = await this.programaService.findByPrograma( + const programa = await this.institucionProgramaService.findByPrograma( equipos[i].programas, ); } diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index 85427d0..08a2eb5 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -15,7 +15,7 @@ import { InstitucionCarreraService } from '../institucion-carrera/institucion-ca import { NodemailerService } from '../nodemailer/nodemailer.service'; import { SoapClientService } from '../soap-client/soap-client.service'; import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service'; -import { Carrera } from 'src/institucion-carrera/entity/carrera.entity'; +import { Carrera } from '../institucion-carrera/entity/carrera.entity'; @Injectable() export class UsuarioService {