bc5ddb29c7
- Introduced TipoEvento entity with enum for event types. - Created DTOs for creating and updating TipoEvento. - Implemented TipoEvento service with methods for CRUD operations and seeding initial data. - Added TipoEvento controller for handling HTTP requests related to event types. - Integrated TipoEvento into the main application module. - Updated Evento entity to include a relationship with TipoEvento. - Enhanced ParticipanteEvento service to register attendance using QR tokens. - Implemented QR token generation and validation for event attendance. - Updated API documentation for new endpoints and functionalities. - Adjusted TypeOrm configuration to include new entities.
102 lines
3.1 KiB
TypeScript
102 lines
3.1 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Param,
|
|
ParseIntPipe,
|
|
Patch,
|
|
Post,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { AdministradorService } from './administrador.service';
|
|
import { Administrador } from './entities/administrador.entity';
|
|
import { CreateAdministradorDto } from './dto/create-administrador.dto';
|
|
import { UpdateAdministradorDto } from './dto/update.administrador.dto';
|
|
import { LoginAdministradorDto } from './dto/login-administrador.dto';
|
|
import { ChangePasswordDto } from './dto/change-password.dto';
|
|
import { ApiBearerAuth } from '@nestjs/swagger';
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
|
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';
|
|
|
|
@AdministradorApiDocumentation.ApiController
|
|
@ApiBearerAuth()
|
|
@Controller('administrador')
|
|
export class AdministradorController {
|
|
constructor(private administradorService: AdministradorService) {}
|
|
|
|
@Get()
|
|
@UseGuards(RolesGuard)
|
|
@UseGuards(JwtValidationGuard)
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiGetAll
|
|
getAdministradores(): Promise<Administrador[]> {
|
|
return this.administradorService.getAdministradores();
|
|
}
|
|
|
|
@Get(':id')
|
|
@UseGuards(RolesGuard)
|
|
@UseGuards(JwtValidationGuard)
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiGetOne
|
|
getAdministrador(@Param('id', ParseIntPipe) id: number) {
|
|
return this.administradorService.getAdminByIdOrFail(id);
|
|
}
|
|
|
|
@Post()
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiCreate
|
|
createAdministrador(@Body() newAdministrador: CreateAdministradorDto) {
|
|
return this.administradorService.createAdministrador(newAdministrador);
|
|
}
|
|
|
|
@Post('login')
|
|
@AdministradorApiDocumentation.ApiLogin
|
|
login(@Body() loginData: LoginAdministradorDto) {
|
|
return this.administradorService.login(
|
|
loginData.nombre_usuario,
|
|
loginData.password,
|
|
);
|
|
}
|
|
|
|
@Patch(':id/change-password')
|
|
@UseGuards(RolesGuard)
|
|
@UseGuards(JwtValidationGuard)
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiChangePassword
|
|
changePassword(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() changePasswordDto: ChangePasswordDto,
|
|
) {
|
|
return this.administradorService.changePassword(
|
|
id,
|
|
changePasswordDto.currentPassword,
|
|
changePasswordDto.newPassword,
|
|
);
|
|
}
|
|
|
|
@Delete(':id')
|
|
@UseGuards(RolesGuard)
|
|
@UseGuards(JwtValidationGuard)
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiRemove
|
|
deleteAdministrador(@Param('id', ParseIntPipe) id: number) {
|
|
return this.administradorService.deleteAdministrador(id);
|
|
}
|
|
|
|
@Patch(':id')
|
|
@UseGuards(RolesGuard)
|
|
@UseGuards(JwtValidationGuard)
|
|
@Roles('administrador')
|
|
@AdministradorApiDocumentation.ApiUpdate
|
|
updateAdministrador(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() administrador: UpdateAdministradorDto,
|
|
) {
|
|
return this.administradorService.updateAdministrador(id, administrador);
|
|
}
|
|
}
|