101 lines
3.0 KiB
TypeScript
101 lines
3.0 KiB
TypeScript
import { Controller, Get, Query, Request, UseGuards } from '@nestjs/common';
|
|
import { AuthGuard } from '@nestjs/passport';
|
|
import {
|
|
ApiBearerAuth,
|
|
ApiOperation,
|
|
ApiQuery,
|
|
ApiTags,
|
|
} from '@nestjs/swagger';
|
|
import { Serealize } from '../interceptors/serialize.interceptor';
|
|
import { ModuloMotivoService } from './modulo-motivo.service';
|
|
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
|
|
import { Operador } from '../operador/entity/operador.entity';
|
|
import { IdInstitucionOptionalDto } from '../dto/input/id-institucion-optional.dto';
|
|
import { GetDto } from './dto/input/get.dto';
|
|
import { ModuloDto } from '../modulo/dto/input/modulo.dto';
|
|
import { ActividadEspecialOutputDto } from './dto/output/actividad-especial';
|
|
import { ModuloMotivoOutputDto } from './dto/output/modulo-motivo.dto';
|
|
|
|
@Controller('modulo-motivo')
|
|
@ApiTags('modulo-motivo')
|
|
export class ModuloMotivoController {
|
|
constructor(
|
|
private moduloMotivoService: ModuloMotivoService,
|
|
private validarUsuarioService: ValidarUsuarioService,
|
|
) {}
|
|
|
|
@Serealize(ModuloMotivoOutputDto)
|
|
@Get()
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@ApiOperation({
|
|
description:
|
|
'Información de 25 cambios de status de un módulo dependiendo de los filtros enviados.',
|
|
})
|
|
@ApiBearerAuth('jwt')
|
|
@ApiQuery({
|
|
description: 'Id del módulo.',
|
|
name: 'id_modulo',
|
|
type: 'string',
|
|
})
|
|
@ApiQuery({
|
|
description: 'Página en la que se encuentra el admin.',
|
|
name: 'pagina',
|
|
type: 'string',
|
|
})
|
|
get(@Request() req, @Query() query: GetDto) {
|
|
const admin: Operador = req.user.operador;
|
|
|
|
this.validarUsuarioService.validarAdmin(admin);
|
|
return this.moduloMotivoService.findAllByIdModulo(
|
|
admin,
|
|
parseInt(query.id_modulo),
|
|
parseInt(query.pagina),
|
|
);
|
|
}
|
|
|
|
@Serealize(ModuloMotivoOutputDto)
|
|
@Get('reporte')
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@ApiOperation({
|
|
description: 'Reporte de todos los cambios de status de un módulo.',
|
|
})
|
|
@ApiBearerAuth('jwt')
|
|
@ApiQuery({
|
|
description: 'Id del módulo.',
|
|
name: 'id_modulo',
|
|
type: 'string',
|
|
})
|
|
reporte(@Request() req, @Query() query: ModuloDto) {
|
|
const admin: Operador = req.user.operador;
|
|
|
|
this.validarUsuarioService.validarSuperAdminAdmin(admin);
|
|
return this.moduloMotivoService.findAllByIdModulo(
|
|
admin,
|
|
parseInt(query.id_modulo),
|
|
);
|
|
}
|
|
|
|
@Serealize(ActividadEspecialOutputDto)
|
|
@Get('reporte-actividad-especial')
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@ApiOperation({
|
|
description: 'Reporte de todos los cambios de status de un módulo.',
|
|
})
|
|
@ApiBearerAuth('jwt')
|
|
@ApiQuery({
|
|
description: 'Id de la institución.',
|
|
name: 'id_institucion',
|
|
type: 'string',
|
|
required: false,
|
|
})
|
|
reporteActividadEspecial(
|
|
@Request() req,
|
|
@Query() query: IdInstitucionOptionalDto,
|
|
) {
|
|
const admin: Operador = req.user.operador;
|
|
|
|
this.validarUsuarioService.validarSuperAdminAdmin(admin);
|
|
return this.moduloMotivoService.findAllActividadEspecial(admin, query);
|
|
}
|
|
}
|