2025-06-13 22:41:20 -06:00
|
|
|
import {
|
|
|
|
|
Body,
|
|
|
|
|
Controller,
|
|
|
|
|
Delete,
|
|
|
|
|
Get,
|
|
|
|
|
Param,
|
|
|
|
|
ParseIntPipe,
|
|
|
|
|
Patch,
|
|
|
|
|
Post,
|
|
|
|
|
UseGuards,
|
|
|
|
|
} from '@nestjs/common';
|
2025-04-01 15:07:11 -06:00
|
|
|
import { AdministradorService } from './administrador.service';
|
2025-06-13 22:41:20 -06:00
|
|
|
import { Administrador } from './entities/administrador.entity';
|
2025-04-01 15:07:11 -06:00
|
|
|
import { CreateAdministradorDto } from './dto/create-administrador.dto';
|
|
|
|
|
import { UpdateAdministradorDto } from './dto/update.administrador.dto';
|
2025-04-21 12:32:45 -06:00
|
|
|
import { LoginAdministradorDto } from './dto/login-administrador.dto';
|
|
|
|
|
import { ChangePasswordDto } from './dto/change-password.dto';
|
2025-08-19 10:27:06 -06:00
|
|
|
import { ApiBearerAuth } from '@nestjs/swagger';
|
2025-04-21 12:32:45 -06:00
|
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
2025-08-19 10:27:06 -06:00
|
|
|
import { AdministradorApiDocumentation } from './docs/administrador.documentation';
|
|
|
|
|
import { JwtValidationGuard } from 'src/auth/guards/jwt-validation.guard';
|
|
|
|
|
import { Roles } from 'src/auth/decorators/roles.decorator';
|
|
|
|
|
import { RolesGuard } from 'src/auth/guards/roles.guard';
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-04-21 12:32:45 -06:00
|
|
|
@AdministradorApiDocumentation.ApiController
|
2025-06-13 22:41:20 -06:00
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Controller('administrador')
|
2025-04-01 15:07:11 -06:00
|
|
|
export class AdministradorController {
|
2025-06-13 22:41:20 -06:00
|
|
|
constructor(private administradorService: AdministradorService) {}
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Get()
|
2025-08-19 10:27:06 -06:00
|
|
|
@UseGuards(RolesGuard)
|
|
|
|
|
@UseGuards(JwtValidationGuard)
|
|
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiGetAll
|
|
|
|
|
getAdministradores(): Promise<Administrador[]> {
|
|
|
|
|
return this.administradorService.getAdministradores();
|
|
|
|
|
}
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Get(':id')
|
2025-08-19 10:27:06 -06:00
|
|
|
@UseGuards(RolesGuard)
|
|
|
|
|
@UseGuards(JwtValidationGuard)
|
|
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiGetOne
|
|
|
|
|
getAdministrador(@Param('id', ParseIntPipe) id: number) {
|
2025-08-19 10:27:06 -06:00
|
|
|
return this.administradorService.getAdminByIdOrFail(id);
|
2025-06-13 22:41:20 -06:00
|
|
|
}
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Post()
|
2025-08-19 10:27:06 -06:00
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiCreate
|
|
|
|
|
createAdministrador(@Body() newAdministrador: CreateAdministradorDto) {
|
|
|
|
|
return this.administradorService.createAdministrador(newAdministrador);
|
|
|
|
|
}
|
2025-04-21 12:32:45 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Post('login')
|
|
|
|
|
@AdministradorApiDocumentation.ApiLogin
|
|
|
|
|
login(@Body() loginData: LoginAdministradorDto) {
|
|
|
|
|
return this.administradorService.login(
|
2025-08-19 10:27:06 -06:00
|
|
|
loginData.nombre_usuario,
|
2025-06-13 22:41:20 -06:00
|
|
|
loginData.password,
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-04-21 12:32:45 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Patch(':id/change-password')
|
2025-08-19 10:27:06 -06:00
|
|
|
@UseGuards(RolesGuard)
|
|
|
|
|
@UseGuards(JwtValidationGuard)
|
|
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiChangePassword
|
|
|
|
|
changePassword(
|
|
|
|
|
@Param('id', ParseIntPipe) id: number,
|
|
|
|
|
@Body() changePasswordDto: ChangePasswordDto,
|
|
|
|
|
) {
|
|
|
|
|
return this.administradorService.changePassword(
|
|
|
|
|
id,
|
|
|
|
|
changePasswordDto.currentPassword,
|
|
|
|
|
changePasswordDto.newPassword,
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Delete(':id')
|
2025-08-19 10:27:06 -06:00
|
|
|
@UseGuards(RolesGuard)
|
|
|
|
|
@UseGuards(JwtValidationGuard)
|
|
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiRemove
|
|
|
|
|
deleteAdministrador(@Param('id', ParseIntPipe) id: number) {
|
|
|
|
|
return this.administradorService.deleteAdministrador(id);
|
|
|
|
|
}
|
2025-04-01 15:07:11 -06:00
|
|
|
|
2025-06-13 22:41:20 -06:00
|
|
|
@Patch(':id')
|
2025-08-19 10:27:06 -06:00
|
|
|
@UseGuards(RolesGuard)
|
|
|
|
|
@UseGuards(JwtValidationGuard)
|
|
|
|
|
@Roles('administrador')
|
2025-06-13 22:41:20 -06:00
|
|
|
@AdministradorApiDocumentation.ApiUpdate
|
|
|
|
|
updateAdministrador(
|
|
|
|
|
@Param('id', ParseIntPipe) id: number,
|
|
|
|
|
@Body() administrador: UpdateAdministradorDto,
|
|
|
|
|
) {
|
|
|
|
|
return this.administradorService.updateAdministrador(id, administrador);
|
|
|
|
|
}
|
2025-04-01 15:07:11 -06:00
|
|
|
}
|