diff --git a/src/app.module.ts b/src/app.module.ts index a441863..a52af89 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -10,8 +10,10 @@ import { AuthModule } from './auth/auth.module'; import { BcryptModule } from './bcrypt/bcrypt.module'; import { CarreraProgramaModule } from './carrera-programa/carrera-programa.module'; import { CarritoModule } from './carrito/carrito.module'; +import { CarritoMotivoModule } from './carrito-motivo/carrito-motivo.module'; import { CronModule } from './cron/cron.module'; import { EquipoModule } from './equipo/equipo.module'; +import { EquipoMotivoModule } from './equipo-motivo/equipo-motivo.module'; import { EquipoProgramaModule } from './equipo-programa/equipo-programa.module'; import { EquipoTipoEntradaModule } from './equipo-tipo-entrada/equipo-tipo-entrada.module'; import { HoraExcepcionModule } from './hora-excepcion/hora-excepcion.module'; @@ -26,7 +28,6 @@ import { InstitucionUsuarioModule } from './institucion-usuario/institucion-usua import { MarcaModule } from './marca/marca.module'; import { ModeloModule } from './modelo/modelo.module'; import { ModuloModule } from './modulo/modulo.module'; -import { MotivoModule } from './motivo/motivo.module'; import { MultaModule } from './multa/multa.module'; import { NodemailerModule } from './nodemailer/nodemailer.module'; import { OperadorModule } from './operador/operador.module'; @@ -40,8 +41,10 @@ import { UsuarioModule } from './usuario/usuario.module'; import { Carrera } from './institucion-carrera/entity/carrera.entity'; import { CarreraPrograma } from './carrera-programa/entity/carrera-programa.entity'; import { Carrito } from './carrito/entity/carrito.entity'; +import { CarritoMotivo } from './carrito-motivo/entity/carrito-motivo.entity'; import { Dia } from './institucion-dia/entity/dia.entity'; import { Equipo } from './equipo/entity/equipo.entity'; +import { EquipoMotivo } from './equipo-motivo/entity/equipo-motivo.entity'; import { EquipoPrograma } from './equipo-programa/entity/equipo-programa.entity'; import { EquipoTipoEntrada } from './equipo-tipo-entrada/entity/equipo-tipo-entrada.entity'; import { HoraExcepcion } from './hora-excepcion/entity/hora-excepcion.entity'; @@ -57,7 +60,6 @@ import { InstitucionUsuario } from './institucion-usuario/entity/institucion-usu import { Marca } from './marca/entity/marca.entity'; import { Modelo } from './modelo/entity/modelo.entity'; import { Modulo } from './modulo/entity/modulo.entity'; -import { Motivo } from './motivo/entity/motivo.entity'; import { Multa } from './multa/entity/multa.entity'; import { Nivel } from './institucion-carrera/entity/nivel.entity'; import { Operador } from './operador/entity/operador.entity'; @@ -98,8 +100,10 @@ import { Usuario } from './usuario/entity/usuario.entity'; Carrera, CarreraPrograma, Carrito, + CarritoMotivo, Dia, Equipo, + EquipoMotivo, EquipoPrograma, EquipoTipoEntrada, HoraExcepcion, @@ -115,7 +119,6 @@ import { Usuario } from './usuario/entity/usuario.entity'; Marca, Modelo, Modulo, - Motivo, Multa, Nivel, Operador, @@ -134,6 +137,7 @@ import { Usuario } from './usuario/entity/usuario.entity'; BcryptModule, CarreraProgramaModule, CarritoModule, + CarritoMotivoModule, CronModule, EquipoProgramaModule, EquipoTipoEntradaModule, @@ -150,7 +154,7 @@ import { Usuario } from './usuario/entity/usuario.entity'; MarcaModule, ModeloModule, ModuloModule, - MotivoModule, + EquipoMotivoModule, MultaModule, NodemailerModule, OperadorModule, diff --git a/src/carrito-motivo/carrito-motivo.controller.spec.ts b/src/carrito-motivo/carrito-motivo.controller.spec.ts new file mode 100644 index 0000000..8248364 --- /dev/null +++ b/src/carrito-motivo/carrito-motivo.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CarritoMotivoController } from './carrito-motivo.controller'; + +describe('CarritoMotivoController', () => { + let controller: CarritoMotivoController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CarritoMotivoController], + }).compile(); + + controller = module.get(CarritoMotivoController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/carrito-motivo/carrito-motivo.controller.ts b/src/carrito-motivo/carrito-motivo.controller.ts new file mode 100644 index 0000000..6041383 --- /dev/null +++ b/src/carrito-motivo/carrito-motivo.controller.ts @@ -0,0 +1,64 @@ +import { + Controller, + ForbiddenException, + Get, + Query, + Request, + UseGuards, +} from '@nestjs/common'; +import { AuthGuard } from '@nestjs/passport'; +import { + ApiBearerAuth, + ApiOperation, + ApiQuery, + ApiTags, +} from '@nestjs/swagger'; +import { Serealize } from '../interceptors/serialize.interceptor'; +import { CaritoMotivoService } from './carrito-motivo.service'; +import { Operador } from '../operador/entity/operador.entity'; +import { GetDto } from './dto/input/get.dto'; +import { CarritoMotivoOutputDto } from './dto/output/carrito-motivo.dto'; + +@Controller('carrito-motivo') +@ApiTags('carrito-motivo') +export class CarritoMotivoController { + constructor(private carritoMotivoService: CaritoMotivoService) {} + + @Serealize(CarritoMotivoOutputDto) + @Get() + @UseGuards(AuthGuard('jwt')) + @ApiOperation({ + description: + 'Endpoint que retorna 25 cambios de status que ha tenido un carrito dependiendo de la página en la que se encuentra el alumno.', + }) + @ApiBearerAuth('jwt') + @ApiQuery({ + description: 'Id del carrito.', + name: 'id_carrito', + type: 'string', + }) + @ApiQuery({ + description: 'Página en la que se encuentra el usuario.', + name: 'pagina', + type: 'string', + }) + get(@Request() req, @Query() query: GetDto) { + const operador: Operador = req.user.operador; + + if ( + !operador || + (operador.tipoUsuario.id_tipo_usuario != 3 && + operador.tipoUsuario.id_tipo_usuario != 4) + ) + throw new ForbiddenException( + 'No tienes los permisos necesarios para acceder a esta información.', + ); + return this.carritoMotivoService.findAllByIdCarrito( + parseInt(query.id_carrito), + parseInt(query.pagina), + ); + } + + // @Get('reporte') + // reporte() {} +} diff --git a/src/carrito-motivo/carrito-motivo.module.ts b/src/carrito-motivo/carrito-motivo.module.ts new file mode 100644 index 0000000..420ca39 --- /dev/null +++ b/src/carrito-motivo/carrito-motivo.module.ts @@ -0,0 +1,23 @@ +import { forwardRef, Module } from '@nestjs/common'; +import { PassportModule } from '@nestjs/passport'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CarritoMotivoController } from './carrito-motivo.controller'; +import { CaritoMotivoService } from './carrito-motivo.service'; +import { CarritoMotivo } from './entity/carrito-motivo.entity'; +import { CarritoModule } from '../carrito/carrito.module'; +import { OperadorModule } from '../operador/operador.module'; +import { StatusModule } from '../status/status.module'; + +@Module({ + imports: [ + forwardRef(() => CarritoModule), + OperadorModule, + StatusModule, + PassportModule.register({ defaultStrategy: 'jwt' }), + TypeOrmModule.forFeature([CarritoMotivo]), + ], + controllers: [CarritoMotivoController], + providers: [CaritoMotivoService], + exports: [CaritoMotivoService], +}) +export class CarritoMotivoModule {} diff --git a/src/carrito-motivo/carrito-motivo.service.spec.ts b/src/carrito-motivo/carrito-motivo.service.spec.ts new file mode 100644 index 0000000..2b48b0c --- /dev/null +++ b/src/carrito-motivo/carrito-motivo.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CaritoMotivoService } from './carrito-motivo.service'; + +describe('CaritoMotivoService', () => { + let service: CaritoMotivoService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [CaritoMotivoService], + }).compile(); + + service = module.get(CaritoMotivoService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/carrito-motivo/carrito-motivo.service.ts b/src/carrito-motivo/carrito-motivo.service.ts new file mode 100644 index 0000000..e737522 --- /dev/null +++ b/src/carrito-motivo/carrito-motivo.service.ts @@ -0,0 +1,49 @@ +import * as moment from 'moment'; +import { forwardRef, Inject, Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Carrito } from 'src/carrito/entity/carrito.entity'; +import { CarritoMotivo } from './entity/carrito-motivo.entity'; +import { Operador } from '../operador/entity/operador.entity'; +import { CarritoService } from '../carrito/carrito.service'; +import { OperadorService } from '../operador/operador.service'; + +@Injectable() +export class CaritoMotivoService { + constructor( + @InjectRepository(CarritoMotivo) + private repository: Repository, + @Inject(forwardRef(() => CarritoService)) + private carritoService: CarritoService, + private operadorService: OperadorService, + ) {} + + async create( + carrito: Carrito, + operador: Operador, + status: boolean, + motivo: string, + ) { + const ahora = moment(); + + return this.repository.save( + this.repository.create({ + carrito, + fecha_creacion: ahora.toDate(), + motivo, + operador, + status, + }), + ); + } + + findAllByIdCarrito(id_carrito: number, pagina: number) { + return this.carritoService.findById(id_carrito).then((carrito) => + this.repository.findAndCount({ + where: { carrito }, + skip: (pagina - 1) * 25, + take: 25, + }), + ); + } +} diff --git a/src/carrito-motivo/dto/input/get.dto.ts b/src/carrito-motivo/dto/input/get.dto.ts new file mode 100644 index 0000000..eb41517 --- /dev/null +++ b/src/carrito-motivo/dto/input/get.dto.ts @@ -0,0 +1,9 @@ +import { IsNumberString } from 'class-validator'; + +export class GetDto { + @IsNumberString() + id_carrito: string; + + @IsNumberString() + pagina: string; +} diff --git a/src/carrito-motivo/dto/output/carrito-motivo.dto.ts b/src/carrito-motivo/dto/output/carrito-motivo.dto.ts new file mode 100644 index 0000000..629d731 --- /dev/null +++ b/src/carrito-motivo/dto/output/carrito-motivo.dto.ts @@ -0,0 +1,20 @@ +import { Expose, Type } from 'class-transformer'; +import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto'; + +export class CarritoMotivoOutputDto { + @Expose() + id_motivo; + + @Expose() + fecha_creacion; + + @Expose() + motivo; + + @Expose() + status; + + @Expose() + @Type(() => OperadorMinOutputDto) + operador; +} diff --git a/src/carrito-motivo/entity/carrito-motivo.entity.ts b/src/carrito-motivo/entity/carrito-motivo.entity.ts new file mode 100644 index 0000000..2ddfb19 --- /dev/null +++ b/src/carrito-motivo/entity/carrito-motivo.entity.ts @@ -0,0 +1,32 @@ +import { + Column, + Entity, + JoinColumn, + ManyToOne, + PrimaryGeneratedColumn, +} from 'typeorm'; +import { Carrito } from '../../carrito/entity/carrito.entity'; +import { Operador } from '../../operador/entity/operador.entity'; + +@Entity() +export class CarritoMotivo { + @PrimaryGeneratedColumn() + id_motivo: number; + + @Column({ type: Date, nullable: false }) + fecha_creacion: Date; + + @Column({ type: String, nullable: false, length: 250 }) + motivo: string; + + @Column({ type: Boolean, nullable: false }) + status: boolean; + + @ManyToOne(() => Carrito, (carrito) => carrito.motivos) + @JoinColumn({ name: 'id_carrito' }) + carrito: Carrito; + + @ManyToOne(() => Operador, (operador) => operador.motivos, { eager: true }) + @JoinColumn({ name: 'id_operador' }) + operador: Operador; +} diff --git a/src/carrito/carrito.module.ts b/src/carrito/carrito.module.ts index e73cced..3a983e8 100644 --- a/src/carrito/carrito.module.ts +++ b/src/carrito/carrito.module.ts @@ -1,9 +1,10 @@ -import { Module } from '@nestjs/common'; +import { forwardRef, Module } from '@nestjs/common'; import { PassportModule } from '@nestjs/passport'; import { TypeOrmModule } from '@nestjs/typeorm'; import { CarritoController } from './carrito.controller'; import { CarritoService } from './carrito.service'; import { Carrito } from './entity/carrito.entity'; +import { CarritoMotivoModule } from '../carrito-motivo/carrito-motivo.module'; import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module'; import { MarcaModule } from '../marca/marca.module'; @@ -12,6 +13,7 @@ import { ModuloModule } from '../modulo/modulo.module'; @Module({ imports: [ + forwardRef(() => CarritoMotivoModule), InstitucionModule, InstitucionTipoCarritoModule, MarcaModule, diff --git a/src/carrito/dto/input/update.dto.ts b/src/carrito/dto/input/update.dto.ts index 26e5986..fcba3e2 100644 --- a/src/carrito/dto/input/update.dto.ts +++ b/src/carrito/dto/input/update.dto.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsInt, IsOptional, IsString } from 'class-validator'; +import { IsBoolean, IsInt, IsOptional } from 'class-validator'; export class UpdateCarritoDto { @IsInt() diff --git a/src/carrito/entity/carrito.entity.ts b/src/carrito/entity/carrito.entity.ts index 6d34a7e..57c8f61 100644 --- a/src/carrito/entity/carrito.entity.ts +++ b/src/carrito/entity/carrito.entity.ts @@ -6,6 +6,7 @@ import { OneToMany, PrimaryGeneratedColumn, } from 'typeorm'; +import { CarritoMotivo } from '../../carrito-motivo/entity/carrito-motivo.entity'; import { Equipo } from '../../equipo/entity/equipo.entity'; import { Marca } from '../../marca/entity/marca.entity'; import { Modelo } from '../../modelo/entity/modelo.entity'; @@ -41,6 +42,9 @@ export class Carrito { @JoinColumn({ name: 'id_tipo_carrito' }) tipoCarrito: TipoCarrito; + @OneToMany(() => CarritoMotivo, (motivo) => motivo.carrito) + motivos: CarritoMotivo[]; + @OneToMany(() => Equipo, (equipo) => equipo.carrito) equipos: Equipo[]; } diff --git a/src/motivo/dto/output/motivo.dto.ts b/src/equipo-motivo/dto/output/equipo-motivo.dto.ts similarity index 91% rename from src/motivo/dto/output/motivo.dto.ts rename to src/equipo-motivo/dto/output/equipo-motivo.dto.ts index 53a4c6d..c0ce582 100644 --- a/src/motivo/dto/output/motivo.dto.ts +++ b/src/equipo-motivo/dto/output/equipo-motivo.dto.ts @@ -2,7 +2,7 @@ import { Expose, Type } from 'class-transformer'; import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto'; import { StatusOutputDto } from '../../../status/dto/output/status.dto'; -export class MotivoOutputDto { +export class EquipoMotivoOutputDto { @Expose() id_motivo; diff --git a/src/motivo/entity/motivo.entity.ts b/src/equipo-motivo/entity/equipo-motivo.entity.ts similarity index 96% rename from src/motivo/entity/motivo.entity.ts rename to src/equipo-motivo/entity/equipo-motivo.entity.ts index e56c481..64e1906 100644 --- a/src/motivo/entity/motivo.entity.ts +++ b/src/equipo-motivo/entity/equipo-motivo.entity.ts @@ -10,7 +10,7 @@ import { Operador } from '../../operador/entity/operador.entity'; import { Status } from '../../status/entity/status.entity'; @Entity() -export class Motivo { +export class EquipoMotivo { @PrimaryGeneratedColumn() id_motivo: number; diff --git a/src/equipo-motivo/equipo-motivo.controller.spec.ts b/src/equipo-motivo/equipo-motivo.controller.spec.ts new file mode 100644 index 0000000..09a973a --- /dev/null +++ b/src/equipo-motivo/equipo-motivo.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EquipoMotivoController } from './equipo-motivo.controller'; + +describe('EquipoMotivoController', () => { + let controller: EquipoMotivoController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [EquipoMotivoController], + }).compile(); + + controller = module.get(EquipoMotivoController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/motivo/motivo.controller.ts b/src/equipo-motivo/equipo-motivo.controller.ts similarity index 78% rename from src/motivo/motivo.controller.ts rename to src/equipo-motivo/equipo-motivo.controller.ts index 872e111..3906665 100644 --- a/src/motivo/motivo.controller.ts +++ b/src/equipo-motivo/equipo-motivo.controller.ts @@ -14,17 +14,17 @@ import { ApiTags, } from '@nestjs/swagger'; import { Serealize } from '../interceptors/serialize.interceptor'; -import { MotivoService } from './motivo.service'; +import { EquipoMotivoService } from './equipo-motivo.service'; import { Operador } from 'src/operador/entity/operador.entity'; import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto'; -import { MotivoOutputDto } from './dto/output/motivo.dto'; +import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto'; -@Controller('motivo') -@ApiTags('motivo') -export class MotivoController { - constructor(private motivoService: MotivoService) {} +@Controller('equipo-motivo') +@ApiTags('equipo-motivo') +export class EquipoMotivoController { + constructor(private equipoMotivoService: EquipoMotivoService) {} - @Serealize(MotivoOutputDto) + @Serealize(EquipoMotivoOutputDto) @Get() @UseGuards(AuthGuard('jwt')) @ApiOperation({ @@ -53,7 +53,7 @@ export class MotivoController { throw new ForbiddenException( 'No tienes los permisos necesarios para acceder a esta información.', ); - return this.motivoService.findAllByIdEquipo( + return this.equipoMotivoService.findAllByIdEquipo( parseInt(query.id_equipo), parseInt(query.pagina), ); diff --git a/src/motivo/motivo.module.ts b/src/equipo-motivo/equipo-motivo.module.ts similarity index 55% rename from src/motivo/motivo.module.ts rename to src/equipo-motivo/equipo-motivo.module.ts index 1e83f86..99a3b19 100644 --- a/src/motivo/motivo.module.ts +++ b/src/equipo-motivo/equipo-motivo.module.ts @@ -1,9 +1,9 @@ import { forwardRef, Module } from '@nestjs/common'; import { PassportModule } from '@nestjs/passport'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { MotivoController } from './motivo.controller'; -import { MotivoService } from './motivo.service'; -import { Motivo } from './entity/motivo.entity'; +import { EquipoMotivoController } from './equipo-motivo.controller'; +import { EquipoMotivoService } from './equipo-motivo.service'; +import { EquipoMotivo } from './entity/equipo-motivo.entity'; import { EquipoModule } from '../equipo/equipo.module'; import { OperadorModule } from '../operador/operador.module'; import { StatusModule } from '../status/status.module'; @@ -14,10 +14,10 @@ import { StatusModule } from '../status/status.module'; OperadorModule, StatusModule, PassportModule.register({ defaultStrategy: 'jwt' }), - TypeOrmModule.forFeature([Motivo]), + TypeOrmModule.forFeature([EquipoMotivo]), ], - controllers: [MotivoController], - providers: [MotivoService], - exports: [MotivoService], + controllers: [EquipoMotivoController], + providers: [EquipoMotivoService], + exports: [EquipoMotivoService], }) -export class MotivoModule {} +export class EquipoMotivoModule {} diff --git a/src/motivo/motivo.service.spec.ts b/src/equipo-motivo/equipo-motivo.service.spec.ts similarity index 50% rename from src/motivo/motivo.service.spec.ts rename to src/equipo-motivo/equipo-motivo.service.spec.ts index d927d7d..829eaf9 100644 --- a/src/motivo/motivo.service.spec.ts +++ b/src/equipo-motivo/equipo-motivo.service.spec.ts @@ -1,15 +1,15 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { MotivoService } from './motivo.service'; +import { EquipoMotivoService } from './equipo-motivo.service'; -describe('MotivoService', () => { - let service: MotivoService; +describe('EquipoMotivoService', () => { + let service: EquipoMotivoService; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ - providers: [MotivoService], + providers: [EquipoMotivoService], }).compile(); - service = module.get(MotivoService); + service = module.get(EquipoMotivoService); }); it('should be defined', () => { diff --git a/src/motivo/motivo.service.ts b/src/equipo-motivo/equipo-motivo.service.ts similarity index 89% rename from src/motivo/motivo.service.ts rename to src/equipo-motivo/equipo-motivo.service.ts index 261ee61..3ef3d5c 100644 --- a/src/motivo/motivo.service.ts +++ b/src/equipo-motivo/equipo-motivo.service.ts @@ -3,7 +3,7 @@ import { forwardRef, Inject, Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Equipo } from '../equipo/entity/equipo.entity'; -import { Motivo } from './entity/motivo.entity'; +import { EquipoMotivo } from './entity/equipo-motivo.entity'; import { Operador } from '../operador/entity/operador.entity'; import { Status } from '../status/entity/status.entity'; import { EquipoService } from '../equipo/equipo.service'; @@ -11,9 +11,10 @@ import { OperadorService } from '../operador/operador.service'; import { StatusService } from '../status/status.service'; @Injectable() -export class MotivoService { +export class EquipoMotivoService { constructor( - @InjectRepository(Motivo) private repository: Repository, + @InjectRepository(EquipoMotivo) + private repository: Repository, @Inject(forwardRef(() => EquipoService)) private equipoService: EquipoService, private operadorService: OperadorService, diff --git a/src/equipo/entity/equipo.entity.ts b/src/equipo/entity/equipo.entity.ts index eb348ad..ed08742 100644 --- a/src/equipo/entity/equipo.entity.ts +++ b/src/equipo/entity/equipo.entity.ts @@ -11,7 +11,7 @@ import { EquipoPrograma } from '../../equipo-programa/entity/equipo-programa.ent import { EquipoTipoEntrada } from '../../equipo-tipo-entrada/entity/equipo-tipo-entrada.entity'; import { Marca } from '../../marca/entity/marca.entity'; import { Modelo } from '../../modelo/entity/modelo.entity'; -import { Motivo } from '../../motivo/entity/motivo.entity'; +import { EquipoMotivo } from '../../equipo-motivo/entity/equipo-motivo.entity'; import { Prestamo } from '../../prestamo/entity/prestamo.entity'; import { Status } from '../../status/entity/status.entity'; @@ -48,8 +48,8 @@ export class Equipo { @JoinColumn({ name: 'id_status' }) status: Status; - @OneToMany(() => Motivo, (motivo) => motivo.equipo) - motivos: Motivo[]; + @OneToMany(() => EquipoMotivo, (motivo) => motivo.equipo) + motivos: EquipoMotivo[]; @OneToMany(() => Prestamo, (prestamo) => prestamo.equipo) prestamos: Prestamo[]; diff --git a/src/equipo/equipo.module.ts b/src/equipo/equipo.module.ts index a9fcc15..144bea6 100644 --- a/src/equipo/equipo.module.ts +++ b/src/equipo/equipo.module.ts @@ -13,7 +13,7 @@ import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/instit import { MarcaModule } from '../marca/marca.module'; import { ModeloModule } from '../modelo/modelo.module'; import { ModuloModule } from '../modulo/modulo.module'; -import { MotivoModule } from '../motivo/motivo.module'; +import { EquipoMotivoModule } from '../equipo-motivo/equipo-motivo.module'; import { OperadorModule } from '../operador/operador.module'; import { StatusModule } from '../status/status.module'; @@ -28,7 +28,7 @@ import { StatusModule } from '../status/status.module'; MarcaModule, ModeloModule, ModuloModule, - forwardRef(() => MotivoModule), + forwardRef(() => EquipoMotivoModule), OperadorModule, PassportModule.register({ defaultStrategy: 'jwt' }), StatusModule, diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 5ba3a8e..860f1de 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -27,7 +27,7 @@ import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/insti import { MarcaService } from '../marca/marca.service'; import { ModeloService } from '../modelo/modelo.service'; import { ModuloService } from '../modulo/modulo.service'; -import { MotivoService } from '../motivo/motivo.service'; +import { EquipoMotivoService } from '../equipo-motivo/equipo-motivo.service'; import { OperadorService } from '../operador/operador.service'; import { StatusService } from '../status/status.service'; @@ -45,8 +45,8 @@ export class EquipoService { private marcaService: MarcaService, private modeloService: ModeloService, private moduloService: ModuloService, - @Inject(forwardRef(() => MotivoService)) - private motivoService: MotivoService, + @Inject(forwardRef(() => EquipoMotivoService)) + private equipoMotivoService: EquipoMotivoService, private operadorService: OperadorService, private statusService: StatusService, ) {} @@ -408,7 +408,12 @@ export class EquipoService { status.id_status >= 4 || (equipo.status.id_status >= 4 && status.id_status === 1) ) - await this.motivoService.create(equipo, operador, status, motivo); + await this.equipoMotivoService.create( + equipo, + operador, + status, + motivo, + ); equipo.status = status; } if (carrito) equipo.carrito = carrito; diff --git a/src/motivo/motivo.controller.spec.ts b/src/motivo/motivo.controller.spec.ts deleted file mode 100644 index 0c5f46d..0000000 --- a/src/motivo/motivo.controller.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { MotivoController } from './motivo.controller'; - -describe('MotivoController', () => { - let controller: MotivoController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [MotivoController], - }).compile(); - - controller = module.get(MotivoController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/src/operador/entity/operador.entity.ts b/src/operador/entity/operador.entity.ts index 1213269..7451c91 100644 --- a/src/operador/entity/operador.entity.ts +++ b/src/operador/entity/operador.entity.ts @@ -7,7 +7,7 @@ import { PrimaryGeneratedColumn, } from 'typeorm'; import { Institucion } from '../../institucion/entity/institucion.entity'; -import { Motivo } from '../../motivo/entity/motivo.entity'; +import { EquipoMotivo } from '../../equipo-motivo/entity/equipo-motivo.entity'; import { Multa } from '../../multa/entity/multa.entity'; import { Prestamo } from '../../prestamo/entity/prestamo.entity'; import { TipoUsuario } from '../../tipo-usuario/entity/tipo-usuario.entity'; @@ -44,8 +44,8 @@ export class Operador { @JoinColumn({ name: 'id_tipo_usuario' }) tipoUsuario: TipoUsuario; - @OneToMany(() => Motivo, (motivo) => motivo.operador) - motivos: Motivo[]; + @OneToMany(() => EquipoMotivo, (motivo) => motivo.operador) + motivos: EquipoMotivo[]; @OneToMany(() => Multa, (multa) => multa.opeardorMulta) multas: Multa[]; diff --git a/src/status/entity/status.entity.ts b/src/status/entity/status.entity.ts index dc6807b..5c4a2a9 100644 --- a/src/status/entity/status.entity.ts +++ b/src/status/entity/status.entity.ts @@ -1,6 +1,6 @@ import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { Equipo } from '../../equipo/entity/equipo.entity'; -import { Motivo } from '../../motivo/entity/motivo.entity'; +import { EquipoMotivo } from '../../equipo-motivo/entity/equipo-motivo.entity'; @Entity() export class Status { @@ -13,6 +13,6 @@ export class Status { @OneToMany(() => Equipo, (equipo) => equipo.status) equipos: Equipo[]; - @OneToMany(() => Motivo, (motivo) => motivo.status) - motivos: Motivo[]; + @OneToMany(() => EquipoMotivo, (motivo) => motivo.status) + motivos: EquipoMotivo[]; } diff --git a/src/upload-file/upload-file.controller.ts b/src/upload-file/upload-file.controller.ts index d2a2f26..9e76274 100644 --- a/src/upload-file/upload-file.controller.ts +++ b/src/upload-file/upload-file.controller.ts @@ -1,4 +1,3 @@ -import * as fs from 'fs'; import { BadRequestException, Controller, @@ -43,12 +42,10 @@ export class UploadFileController { const path = file ? `${file.destination}/${file.filename}` : null; if (!file) throw new BadRequestException('No se mandó ningún archivo.'); - return this.uploadFileService - .createUsuarios(path, parseInt(query.id_institucion)) - .then((res) => { - fs.unlink(path, (err) => {}); - return res; - }); + return this.uploadFileService.createUsuarios( + path, + parseInt(query.id_institucion), + ); } @Get('download-logo')