Files
api-AT/src/user/user.controller.ts
T

64 lines
1.7 KiB
TypeScript
Raw Normal View History

import {
Controller,
Get,
Post,
Body,
UseGuards,
Res,
2025-09-24 11:04:08 -04:00
Req,
} from '@nestjs/common';
2025-09-12 20:41:51 -06:00
import type { Response } from 'express';
2025-09-04 21:04:15 -04:00
import { UserService } from './user.service';
import { changePasswordDto, CreateUserDto, Login } from './dto/create-user.dto';
2025-09-24 11:04:08 -04:00
import { JwtAuthGuard } from './jwt.guard';
2026-03-02 14:49:15 -06:00
import { RolesGuard } from 'src/roles.guard';
import { Roles } from 'src/roles.decorator';
import { Role } from 'src/role.enum';
2025-09-04 21:04:15 -04:00
@Controller('user')
export class UserController {
2026-03-02 14:49:15 -06:00
constructor(private readonly userService: UserService) { }
2025-09-12 20:41:51 -06:00
2026-03-02 14:49:15 -06:00
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR)
2026-01-13 14:51:59 -06:00
@Get()
async getAll() {
return this.userService.getAll();
}
2026-03-02 14:49:15 -06:00
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR)
2026-01-13 14:51:59 -06:00
@Get('/perfil')
async getAllPerfil() {
return this.userService.getAllPerfil();
}
@Post()
2025-09-24 11:00:56 -06:00
async Login(@Body() data: Login, @Res() res: Response) {
return this.userService.Login(data, res);
}
2025-09-12 13:18:11 -04:00
2025-10-02 17:03:25 -06:00
@UseGuards(JwtAuthGuard)
2025-09-12 13:18:11 -04:00
@Get('/validate-token')
2025-09-24 11:04:08 -04:00
getProfile(@Req() req) {
2026-02-20 14:30:41 -06:00
return req.user.role;
2025-09-12 13:18:11 -04:00
}
2025-09-24 11:00:56 -06:00
2026-03-02 14:49:15 -06:00
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR)
2025-09-24 11:00:56 -06:00
@Post('/create')
async createUser(@Body() data: CreateUserDto) {
return this.userService.create(data);
}
2026-03-02 14:49:15 -06:00
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.ADMINISTRADOR, Role.SUPER_ADMINISTRADOR)
2025-10-02 17:03:25 -06:00
@Post('/changePassword')
2025-09-24 11:04:08 -04:00
async changePassword(@Body() data: changePasswordDto, @Req() req) {
const id_usuario = req.user.id;
await this.userService.changePassword(data, id_usuario);
return { message: 'Contraseña actualizada correctamente' };
}
2025-09-04 21:04:15 -04:00
}
//IO