diff --git a/src/app.module.ts b/src/app.module.ts index 41cd6c8..c113228 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -30,7 +30,6 @@ import { AuthModule } from './auth/auth.module'; UsuariosModule, MovimientoModule, EquipoModule, - UsuariosModule, AuthModule ], controllers: [], diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts index e762eb7..0768f00 100644 --- a/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -2,7 +2,8 @@ import { Module } from '@nestjs/common'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { UsuariosModule } from 'src/usuarios/usuarios.module'; -import { JwtModule } from '@nestjs/jwt'; +import { JwtModule, JwtService } from '@nestjs/jwt'; +import { UsuariosService } from 'src/usuarios/usuarios.service'; @@ -17,6 +18,6 @@ import { JwtModule } from '@nestjs/jwt'; }), ], controllers: [AuthController], - providers: [AuthService] + providers: [AuthService,UsuariosService, JwtService] }) export class AuthModule {} diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index 3751301..0ef6c2f 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -11,20 +11,24 @@ export class AuthService { private readonly usuarioService:UsuariosService, private readonly jwtService:JwtService ){} + //Pendiente async registro({nombre, contraseña,tipoUsuario}: CreateUsuarioDto){ const usuario= await this.usuarioService.findOneByName(nombre) if(usuario){ throw new BadRequestException("Nombre de usuario ya existente"); } const hashedContraseña= await argon2.hash(contraseña) ; + await this.usuarioService.create({ nombre, contraseña:hashedContraseña, - tipoUsuario + tipoUsuario, }); + return{ message:"Usuario registrado exitosamente " }; } + async login({nombre, contraseña}:LoginDto){ const usuario= await this.usuarioService.findOneByName(nombre) if(!usuario){ @@ -39,7 +43,9 @@ export class AuthService { const dataUser={ id:usuario.id_usuario, nombre:usuario.nombre, - tipoUsuario:usuario.tipoUsuario.id_tipo_usuario} + tipoUsuario:usuario.tipoUsuario.id_tipo_usuario + } + const token=await this.jwtService.sign(dataUser) return{ token:token, diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index 136a857..d36c0ce 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -20,28 +20,10 @@ export class Equipo { @Column({ length: 100, nullable: true }) serie: string; - - @ManyToOne(() => Estado, (estado) => estado.equipo) - estado: Estado; - - @ManyToOne(() => Adscripcion, (adscripcion) => adscripcion.equipo) - adscripcion: Adscripcion; - + @Column({ length: 100, nullable: true }) lugar: string; - @ManyToOne(() => TipoEquipo, (tipoEquipo) => tipoEquipo.equipo) - tipoEquipo: TipoEquipo; - - @ManyToOne(() => SistemaOperativo,(sistemaOperativo) => sistemaOperativo.equipo) - sistemaOperativo: SistemaOperativo; - - @ManyToOne(() => Procesador, (procesador) => procesador.equipo) - procesador: Procesador; - - @ManyToOne(() => Uso, (tipoUso) => tipoUso.equipo) - tipoUso: Uso; - @Column({ name: 'fecha_factura' }) fechaFactura: Date; @@ -50,15 +32,36 @@ export class Equipo { @Column({ length: 100, nullable: true }) modelo: string; + //Relaciones + @OneToMany(()=>Movimiento, mov => mov.equipo) + mov:Movimiento[] - @ManyToOne(() => Marca, (marca) => marca.equipo) + @ManyToOne(() => Estado, estado => estado.equipo) + estado: Estado; + + @ManyToOne(() => Adscripcion, (adscripcion) => adscripcion.equipo) + adscripcion: Adscripcion; + + @ManyToOne(() => TipoEquipo, tipoEquipo => tipoEquipo.equipo) + tipoEquipo: TipoEquipo; + + @ManyToOne(() => SistemaOperativo, sistemaOperativo => sistemaOperativo.equipo) + sistemaOperativo: SistemaOperativo; + + @ManyToOne(() => Procesador, procesador => procesador.equipo) + procesador: Procesador; + + @ManyToOne(() => Uso, tipoUso => tipoUso.equipo) + tipoUso: Uso; + + @ManyToOne(() => Marca, marca => marca.equipo) marca: Marca; - @OneToMany(() => Equipo, (equipo) => equipo.marca) + @OneToMany(() => Equipo, equipo => equipo.marca) equipo: Equipo[]; + + - @OneToMany(() => Movimiento, (mov) => mov.equipo) - movimientos: Movimiento[]; diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 25e3bb4..3958e7a 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -96,8 +96,6 @@ export class EquipoService { marca: equipoNuevo.id_marca ? { id_marca: equipoNuevo.id_marca } : undefined, }; - - const equipoUpdate=await this.equipoRepository.preload(updateData); if(!equipoUpdate){ @@ -106,7 +104,6 @@ export class EquipoService { } return await this.equipoRepository.save(equipoUpdate); - } } diff --git a/src/movimiento/entities/movimiento.entity.ts b/src/movimiento/entities/movimiento.entity.ts index f120904..ab1553e 100644 --- a/src/movimiento/entities/movimiento.entity.ts +++ b/src/movimiento/entities/movimiento.entity.ts @@ -1,3 +1,4 @@ +import { Equipo } from 'src/equipo/entities/equipo.entity'; import { Usuario } from 'src/usuarios/entities/usuario.entity'; import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm'; @@ -6,11 +7,11 @@ export class Movimiento { @PrimaryGeneratedColumn() id_movimiento: number; - @ManyToOne(() => Movimiento, (id_usuario) => id_usuario.id_usuario) - id_usuario: Movimiento; + @ManyToOne(() => Usuario, user => user.movimiento) + user: Usuario; - @ManyToOne(() => Movimiento, (id_equipo) => id_equipo.id_equipo) - id_equipo: Movimiento; + @ManyToOne(() => Equipo, equipo=> equipo.mov) + equipo: Equipo; @Column({ name: 'fecha_movimiento' }) fechaMovimiento: Date; diff --git a/src/movimiento/movimiento.service.ts b/src/movimiento/movimiento.service.ts index 995e12b..9af2c85 100644 --- a/src/movimiento/movimiento.service.ts +++ b/src/movimiento/movimiento.service.ts @@ -31,7 +31,7 @@ export class MovimientoService { if (!usuario || !equipo) { throw new Error('Usuario o equipo no encontrado'); } - +/* const movimiento = this.movimientoRepo.create({ usuario, equipo, @@ -40,4 +40,6 @@ export class MovimientoService { return await this.movimientoRepo.save(movimiento); } + */ + } } diff --git a/src/usuarios/entities/usuario.entity.ts b/src/usuarios/entities/usuario.entity.ts index 73b9c7b..0bb5ea9 100644 --- a/src/usuarios/entities/usuario.entity.ts +++ b/src/usuarios/entities/usuario.entity.ts @@ -1,7 +1,19 @@ import { Movimiento } from 'src/movimiento/entities/movimiento.entity'; import {Column, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn} from 'typeorm'; -import { Movimiento } from 'src/movimiento/entities/movimiento.entity'; + +@Entity() +export class Tipo_Usuario { + @PrimaryGeneratedColumn() + id_tipo_usuario: number; + + @Column({length:50, nullable:true}) + tipo_usuario:string + + @OneToMany(() => Usuario, (usuarios) => usuarios.tipoUsuario) + usuarios: Usuario[]; + +} @Entity() export class Usuario { @@ -23,14 +35,3 @@ export class Usuario { } -@Entity() -export class Tipo_Usuario { - @PrimaryGeneratedColumn() - id_tipo_usuario: number; - - @Column({length:50, nullable:true}) - tipo_usuario:string - - @OneToMany(() => Usuario, (usuarios) => usuarios.tipoUsuario) - usuarios: Usuario[]; -} diff --git a/src/usuarios/usuarios.service.ts b/src/usuarios/usuarios.service.ts index 27094fb..eb6094a 100644 --- a/src/usuarios/usuarios.service.ts +++ b/src/usuarios/usuarios.service.ts @@ -22,13 +22,14 @@ export class UsuariosService { return await this.usuarioRepository.save(user); } + async findOneByName(nombre: string) { + return await this.usuarioRepository.findOne({where:{nombre}}); + } async remove(id:number) { return await this.usuarioRepository.delete(id); } - async findOneByName(nombre: string) { - return await this.usuarioRepository.findOne({where:{nombre}}); - } + findAll() {