diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index d6daa9f..2f9d630 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -51,7 +51,7 @@ export class EquipoService { .innerJoin('equipo.plataforma', 'p') .innerJoin('equipo.areaUbicacion', 'a') .where('equipo.activo = 1') - .orderBy('equipo.ubicacion', 'ASC') + .orderBy('equipo.ubicacion + 0', 'ASC') .getRawMany(); } @@ -108,7 +108,7 @@ export class EquipoService { return `equipo.id_equipo NOT IN ${subQuery}`; }) - .orderBy('equipo.ubicacion', 'ASC') + .orderBy('equipo.ubicacion + 0', 'ASC') .getMany(); diff --git a/src/user/user.controller.ts b/src/user/user.controller.ts index d1dd306..075cf98 100644 --- a/src/user/user.controller.ts +++ b/src/user/user.controller.ts @@ -6,6 +6,8 @@ import { UseGuards, Res, Req, + Param, + Patch, } from '@nestjs/common'; import type { Response } from 'express'; import { UserService } from './user.service'; @@ -19,7 +21,15 @@ import { Role } from 'src/role.enum'; export class UserController { constructor(private readonly userService: UserService) { } + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR) + @Get('/switch/:id') + async getactive(@Param('id') id: number) { + return this.userService.getactive(id); + } + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR) @Get() async getAll() { return this.userService.getAll(); @@ -32,6 +42,13 @@ export class UserController { return this.userService.getAllPerfil(); } + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR) + @Patch(':id/activo') + toggleActivo(@Param('id') id: number) { + return this.userService.toggleActivo(id); + } + @Post() async Login(@Body() data: Login, @Res() res: Response) { return this.userService.Login(data, res); @@ -44,7 +61,9 @@ export class UserController { } @UseGuards(JwtAuthGuard, RolesGuard) + @Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR) + @Post('/create') async createUser(@Body() data: CreateUserDto) { return this.userService.create(data); diff --git a/src/user/user.service.ts b/src/user/user.service.ts index 654008c..b6f5663 100644 --- a/src/user/user.service.ts +++ b/src/user/user.service.ts @@ -19,7 +19,36 @@ export class UserService { @InjectRepository(Perfil) private perfilRepository: Repository, private jwtService: JwtService, - ) {} + ) { } + + async toggleActivo(id: number) { + + const usuario = await this.userRepository.findOne({ + where: { id_usuario: id } + }); + + if (!usuario) { + throw new NotFoundException("no se encontro usuario") + } + + usuario.activo = usuario.activo === 1 ? 0 : 1; + + return this.userRepository.save(usuario); + } + + async getactive(id: number) { + const user = await this.userRepository.findOne({ + where: { id_usuario: id }, + }); + + if (!user) { + throw new NotFoundException('Usuario no encontrado'); + } + + user.activo = user.activo === 1 ? 0 : 1; + + return this.userRepository.save(user); + } async findOneByNameandPassword(data: Login): Promise { const { usuario, password } = data; @@ -28,7 +57,7 @@ export class UserService { where: { usuario, password }, }); - if(user?.activo === 0){ + if (user?.activo === 0) { throw new NotFoundException(`El usuario se encuentra desactivado`); } @@ -115,7 +144,7 @@ export class UserService { } async getAll() { - return this.userRepository.find(); + return this.userRepository.find({select:['id_usuario','nombre','usuario','perfil','activo','password']}); } async getAllPerfil() {