Se agregaron los perifericos

This commit is contained in:
2025-10-30 10:08:23 -06:00
parent 332575a8e1
commit 14ac2bd0d1
10 changed files with 129 additions and 121 deletions
+10 -7
View File
@@ -5,7 +5,7 @@ import {
InternalServerErrorException,
} from '@nestjs/common';
import { UsuariosService } from 'src/usuarios/usuarios.service';
import * as argon2 from 'argon2';
import * as bcrypt from 'bcryptjs';
import { LoginDto } from './dto/login.dto';
import { CreateUsuarioDto } from 'src/usuarios/dto/create-usuario.dto';
import { JwtService } from '@nestjs/jwt';
@@ -24,7 +24,8 @@ export class AuthService {
}
try {
const hashedContraseña = await argon2.hash(contraseña);
const salt = await bcrypt.genSalt(10);
const hashedContraseña = await bcrypt.hash(contraseña, salt);
await this.usuarioService.create({
nombre,
@@ -46,23 +47,25 @@ export class AuthService {
throw new UnauthorizedException('Usuario no encontrado');
}
const contraseñaValida = await argon2.verify(
usuario.contraseña,
const contraseñaValida = await bcrypt.compare(
contraseña,
usuario.contraseña,
);
if (!contraseñaValida) {
throw new UnauthorizedException('Contraseña invalida');
throw new UnauthorizedException('Contraseña inválida');
}
const dataUser = {
id: usuario.id_usuario,
nombre: usuario.nombre,
tipoUsuario: usuario.tipoUsuario.id_tipo_usuario,
};
const token = await this.jwtService.sign(dataUser);
const token = this.jwtService.sign(dataUser);
return {
token: token,
token,
};
}
}
+13 -1
View File
@@ -1,4 +1,10 @@
import { IsString, IsOptional, IsDateString, IsInt } from 'class-validator';
import {
IsString,
IsOptional,
IsDateString,
IsInt,
IsNotEmpty,
} from 'class-validator';
export class CreateEquipoDto {
@IsString()
@@ -39,4 +45,10 @@ export class CreateEquipoDto {
@IsInt()
id_marca: number;
@IsInt()
id_periferico: number;
@IsNotEmpty()
isImpresora: Boolean;
}
+12
View File
@@ -83,3 +83,15 @@ export class Procesador {
@OneToMany(() => Equipo, (equipo) => equipo.procesador)
equipo: Equipo[];
}
@Entity()
export class Periferico {
@PrimaryGeneratedColumn()
id_periferico: number;
@Column()
periferico: string;
@OneToMany(() => Equipo, (equipo) => equipo.periferico)
equipo: Equipo[];
}
+5
View File
@@ -10,6 +10,7 @@ import {
Adscripcion,
Estado,
Marca,
Periferico,
Procesador,
SistemaOperativo,
TipoEquipo,
@@ -75,4 +76,8 @@ export class Equipo {
@JoinColumn({ name: 'id_marca' })
@ManyToOne(() => Marca, (marca) => marca.equipo)
marca: Marca;
@JoinColumn({ name: 'id_periferico' })
@ManyToOne(() => Periferico, (Periferico) => Periferico.equipo)
periferico: Periferico;
}
+8
View File
@@ -60,11 +60,13 @@ export class EquipoController {
findMarcas() {
return this.equipoService.findAllMarcas();
}
@UseGuards(AuthGuard('jwt'))
@Get('estados')
findEstados() {
return this.equipoService.findAllEstados();
}
@UseGuards(AuthGuard('jwt'))
@Get('adscripciones')
findAdscripciones() {
@@ -85,4 +87,10 @@ export class EquipoController {
findProcesadores() {
return this.equipoService.findAllProcesadores();
}
@UseGuards(AuthGuard('jwt'))
@Get('perifericos')
findPerifericos() {
return this.equipoService.findAllPPerifericos();
}
}
+70 -43
View File
@@ -41,6 +41,9 @@ export class EquipoService {
@InjectRepository(Procesador)
private readonly procesadorRepo: Repository<Procesador>,
@InjectRepository(Equipo)
private readonly perifericoRepo: Repository<Equipo>,
) {}
async buscarEquipos(filtros: any, page: number = 1, limit: number = 10) {
@@ -159,6 +162,7 @@ export class EquipoService {
'sistemaOperativo',
'procesador',
'tipoUso',
'periferico',
],
});
@@ -173,34 +177,6 @@ export class EquipoService {
return { ...equipo, ...responsable };
}
findAllUsos() {
return this.usoRepo.find();
}
findAllMarcas() {
return this.marcaRepo.find();
}
findAllEstados() {
return this.estadoRepo.find();
}
findAllAdscripciones() {
return this.adscripcionRepo.find();
}
findAllTiposEquipo() {
return this.tipoEquipoRepo.find();
}
findAllSistemasOperativos() {
return this.sistemaOperativoRepo.find();
}
findAllProcesadores() {
return this.procesadorRepo.find();
}
async searchResponsable(nombreAdscripcion: string) {
const adscripcion = await this.adscripcionRepo.findOneBy({
adscripcion: nombreAdscripcion,
@@ -224,22 +200,73 @@ export class EquipoService {
}
create(equipo: CreateEquipoDto) {
const nuevoEquipo = this.equipoRepository.create({
inventario: equipo.inventario,
serie: equipo.serie,
lugar: equipo.lugar,
fechaFactura: equipo.fechaFactura,
antiguedad: equipo.antiguedad,
modelo: equipo.modelo,
estado: { id_estado: equipo.id_estado },
adscripcion: { id_adscripcion: equipo.id_adscripcion },
tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo },
sistemaOperativo: { id_sistema_operativo: equipo.id_sistema_operativo },
procesador: { id_procesador: equipo.id_procesador },
tipoUso: { id_tipo_uso: equipo.id_uso },
marca: { id_marca: equipo.id_marca },
});
let nuevoEquipo;
if (equipo.isImpresora) {
nuevoEquipo = this.equipoRepository.create({
inventario: equipo.inventario,
serie: equipo.serie,
lugar: equipo.lugar,
fechaFactura: equipo.fechaFactura,
antiguedad: equipo.antiguedad,
modelo: equipo.modelo,
estado: { id_estado: equipo.id_estado },
adscripcion: { id_adscripcion: equipo.id_adscripcion },
tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo },
tipoUso: { id_tipo_uso: equipo.id_uso },
marca: { id_marca: equipo.id_marca },
periferico: { id_periferico: equipo.id_periferico },
});
} else {
nuevoEquipo = this.equipoRepository.create({
inventario: equipo.inventario,
serie: equipo.serie,
lugar: equipo.lugar,
fechaFactura: equipo.fechaFactura,
antiguedad: equipo.antiguedad,
modelo: equipo.modelo,
estado: { id_estado: equipo.id_estado },
adscripcion: { id_adscripcion: equipo.id_adscripcion },
tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo },
sistemaOperativo: { id_sistema_operativo: equipo.id_sistema_operativo },
tipoUso: { id_tipo_uso: equipo.id_uso },
marca: { id_marca: equipo.id_marca },
procesador: { id_procesador: equipo.id_procesador },
});
}
return this.equipoRepository.save(nuevoEquipo);
}
async findAllUsos() {
return await this.usoRepo.find();
}
async findAllMarcas() {
return await this.marcaRepo.find();
}
async findAllEstados() {
return await this.estadoRepo.find();
}
async findAllAdscripciones() {
return await this.adscripcionRepo.find();
}
async findAllTiposEquipo() {
return await this.tipoEquipoRepo.find();
}
async findAllSistemasOperativos() {
return await this.sistemaOperativoRepo.find();
}
async findAllProcesadores() {
return await this.procesadorRepo.find();
}
async findAllPPerifericos() {
return await this.perifericoRepo.find();
}
}