fixed orderBy and added roles

This commit is contained in:
2026-03-17 12:07:26 -05:00
3 changed files with 53 additions and 5 deletions
+2 -2
View File
@@ -51,7 +51,7 @@ export class EquipoService {
.innerJoin('equipo.plataforma', 'p') .innerJoin('equipo.plataforma', 'p')
.innerJoin('equipo.areaUbicacion', 'a') .innerJoin('equipo.areaUbicacion', 'a')
.where('equipo.activo = 1') .where('equipo.activo = 1')
.orderBy('equipo.ubicacion', 'ASC') .orderBy('equipo.ubicacion + 0', 'ASC')
.getRawMany(); .getRawMany();
} }
@@ -108,7 +108,7 @@ export class EquipoService {
return `equipo.id_equipo NOT IN ${subQuery}`; return `equipo.id_equipo NOT IN ${subQuery}`;
}) })
.orderBy('equipo.ubicacion', 'ASC') .orderBy('equipo.ubicacion + 0', 'ASC')
.getMany(); .getMany();
+19
View File
@@ -6,6 +6,8 @@ import {
UseGuards, UseGuards,
Res, Res,
Req, Req,
Param,
Patch,
} from '@nestjs/common'; } from '@nestjs/common';
import type { Response } from 'express'; import type { Response } from 'express';
import { UserService } from './user.service'; import { UserService } from './user.service';
@@ -19,7 +21,15 @@ import { Role } from 'src/role.enum';
export class UserController { export class UserController {
constructor(private readonly userService: UserService) { } 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() @Get()
async getAll() { async getAll() {
return this.userService.getAll(); return this.userService.getAll();
@@ -32,6 +42,13 @@ export class UserController {
return this.userService.getAllPerfil(); 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() @Post()
async Login(@Body() data: Login, @Res() res: Response) { async Login(@Body() data: Login, @Res() res: Response) {
return this.userService.Login(data, res); return this.userService.Login(data, res);
@@ -44,7 +61,9 @@ export class UserController {
} }
@UseGuards(JwtAuthGuard, RolesGuard) @UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR) @Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR)
@Post('/create') @Post('/create')
async createUser(@Body() data: CreateUserDto) { async createUser(@Body() data: CreateUserDto) {
return this.userService.create(data); return this.userService.create(data);
+32 -3
View File
@@ -19,7 +19,36 @@ export class UserService {
@InjectRepository(Perfil) @InjectRepository(Perfil)
private perfilRepository: Repository<Perfil>, private perfilRepository: Repository<Perfil>,
private jwtService: JwtService, 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<User> { async findOneByNameandPassword(data: Login): Promise<User> {
const { usuario, password } = data; const { usuario, password } = data;
@@ -28,7 +57,7 @@ export class UserService {
where: { usuario, password }, where: { usuario, password },
}); });
if(user?.activo === 0){ if (user?.activo === 0) {
throw new NotFoundException(`El usuario se encuentra desactivado`); throw new NotFoundException(`El usuario se encuentra desactivado`);
} }
@@ -115,7 +144,7 @@ export class UserService {
} }
async getAll() { async getAll() {
return this.userRepository.find(); return this.userRepository.find({select:['id_usuario','nombre','usuario','perfil','activo','password']});
} }
async getAllPerfil() { async getAllPerfil() {