58 lines
2.4 KiB
TypeScript
58 lines
2.4 KiB
TypeScript
|
|
import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post } from '@nestjs/common';
|
||
|
|
import { AdministradorService } from './administrador.service';
|
||
|
|
import { Administrador } from './administrador.entity';
|
||
|
|
import { CreateAdministradorDto } from './dto/create-administrador.dto';
|
||
|
|
import { UpdateAdministradorDto } from './dto/update.administrador.dto';
|
||
|
|
import { ApiTags, ApiOperation, ApiResponse, ApiParam, ApiBody } from '@nestjs/swagger';
|
||
|
|
|
||
|
|
@ApiTags('Administradores') // Agrupa los endpoints en Swagger
|
||
|
|
@Controller('administrador')
|
||
|
|
export class AdministradorController {
|
||
|
|
|
||
|
|
constructor(private administradorService: AdministradorService) {}
|
||
|
|
|
||
|
|
@Get()
|
||
|
|
@ApiOperation({ summary: 'Obtener todos los administradores' })
|
||
|
|
@ApiResponse({ status: 200, description: 'Lista de administradores obtenida correctamente.' })
|
||
|
|
getAdministradores(): Promise<Administrador[]> {
|
||
|
|
return this.administradorService.getAdministradores();
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get(':id')
|
||
|
|
@ApiOperation({ summary: 'Obtener un administrador por ID' })
|
||
|
|
@ApiParam({ name: 'id', description: 'ID del administrador', example: 1 })
|
||
|
|
@ApiResponse({ status: 200, description: 'Administrador obtenido correctamente.' })
|
||
|
|
@ApiResponse({ status: 404, description: 'Administrador no encontrado.' })
|
||
|
|
getAdministrador(@Param('id', ParseIntPipe) id: number) {
|
||
|
|
return this.administradorService.getAdministrador(id)
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post()
|
||
|
|
@ApiOperation({ summary: 'Registrar un nuevo administrador' })
|
||
|
|
@ApiBody({
|
||
|
|
description: 'Datos del administrador a registrar',
|
||
|
|
schema: {
|
||
|
|
type: 'object',
|
||
|
|
properties: {
|
||
|
|
id_tipo_user: { type: 'integer', example: 1 }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
@ApiResponse({ status: 201, description: 'Administrador registrado exitosamente.' })
|
||
|
|
@ApiResponse({ status: 400, description: 'Datos inválidos.' })
|
||
|
|
createAdministrador(@Body() newAdministrador: CreateAdministradorDto) {
|
||
|
|
return this.administradorService.createAdministrador(newAdministrador)
|
||
|
|
}
|
||
|
|
|
||
|
|
@Delete(':id')
|
||
|
|
deleteAdministrador(@Param('id', ParseIntPipe) id: number) {
|
||
|
|
return this.administradorService.deleteAdministrador(id)
|
||
|
|
}
|
||
|
|
|
||
|
|
@Patch(':id')
|
||
|
|
updateAdministrador(@Param('id', ParseIntPipe) id: number, @Body() administrador: UpdateAdministradorDto) {
|
||
|
|
return this.administradorService.updateAdministrador(id, administrador)
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|