2022-07-15 00:27:30 -05:00
|
|
|
import {
|
|
|
|
|
Body,
|
|
|
|
|
Controller,
|
|
|
|
|
Get,
|
|
|
|
|
Post,
|
|
|
|
|
Put,
|
|
|
|
|
Query,
|
2022-08-06 18:39:19 -05:00
|
|
|
Request,
|
2022-07-15 00:27:30 -05:00
|
|
|
UseGuards,
|
|
|
|
|
} from '@nestjs/common';
|
|
|
|
|
import { AuthGuard } from '@nestjs/passport';
|
|
|
|
|
import {
|
|
|
|
|
ApiBearerAuth,
|
|
|
|
|
ApiBody,
|
|
|
|
|
ApiOperation,
|
|
|
|
|
ApiQuery,
|
|
|
|
|
ApiTags,
|
|
|
|
|
} from '@nestjs/swagger';
|
2022-06-14 15:39:13 -05:00
|
|
|
import { Serealize } from '../interceptors/serialize.interceptor';
|
2022-04-04 20:53:32 -05:00
|
|
|
import { PrestamoService } from './prestamo.service';
|
2022-09-02 16:15:05 -05:00
|
|
|
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
|
2022-08-15 14:29:53 -05:00
|
|
|
import { Operador } from '../operador/entity/operador.entity';
|
2022-10-24 09:30:19 -05:00
|
|
|
import { Usuario } from '../usuario/entity/usuario.entity';
|
|
|
|
|
import { Modulo } from '../modulo/entity/modulo.entity';
|
2022-10-23 17:52:46 -05:00
|
|
|
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
|
|
|
|
import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto';
|
2022-07-07 23:56:17 -05:00
|
|
|
import { NumeroInventarioDto } from '../dto/numero-inventario.dto';
|
2022-06-14 12:11:10 -05:00
|
|
|
import { ActivosDto } from './dto/input/activos.dto';
|
2022-06-14 20:57:28 -05:00
|
|
|
import { CancelarOperadorDto } from './dto/input/cancelar-operador.dto';
|
2022-06-14 14:56:01 -05:00
|
|
|
import { HistorialDto } from './dto/input/historial.dto';
|
2022-06-14 20:57:28 -05:00
|
|
|
import { IdPrestamoDto } from './dto/input/id-prestamo.dto';
|
|
|
|
|
import { PedirDto } from './dto/input/pedir.dto';
|
|
|
|
|
import { EntregarDto } from './dto/input/entregar.dto';
|
|
|
|
|
import { RegresarIdPrestamoDto } from './dto/input/regresar-id-prestamo.dto';
|
|
|
|
|
import { RegresarNumeroInventarioDto } from './dto/input/regresar-numero-inventario.dto';
|
2022-10-24 09:30:19 -05:00
|
|
|
import { MessageOutputDto } from '../dto/output/message.dto';
|
2022-07-10 23:41:32 -05:00
|
|
|
import { ActivosOutputDto } from './dto/output/activos.dto';
|
2022-10-02 20:15:23 -05:00
|
|
|
import { EquipoMinOutputDto } from '../equipo/dto/output/equipo-min.dto';
|
2022-06-14 15:39:13 -05:00
|
|
|
import { PrestamoOutputDto } from './dto/output/prestamo.dto';
|
|
|
|
|
import { PrestamoEquipoOutputDto } from './dto/output/prestamo-equipo.dto';
|
2022-06-28 19:29:10 -05:00
|
|
|
import { PrestamosOutputDto } from './dto/output/prestamos.dto';
|
|
|
|
|
import { PrestamosEquipoOutputDto } from './dto/output/prestamos-equipo.dto';
|
|
|
|
|
import { PrestamosUsuarioOutputDto } from './dto/output/prestamos-usuario.dto';
|
2022-03-29 22:03:19 -06:00
|
|
|
|
|
|
|
|
@Controller('prestamo')
|
2022-06-03 08:47:36 -05:00
|
|
|
@ApiTags('prestamo')
|
2022-04-04 20:53:32 -05:00
|
|
|
export class PrestamoController {
|
2022-09-02 16:15:05 -05:00
|
|
|
constructor(
|
|
|
|
|
private prestamoService: PrestamoService,
|
|
|
|
|
private validarUsuarioService: ValidarUsuarioService,
|
|
|
|
|
) {}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-07-10 23:41:32 -05:00
|
|
|
@Serealize(ActivosOutputDto)
|
2022-04-17 22:51:49 -05:00
|
|
|
@Get('activos')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna 25 prestamos activos dependiendo de la página en la que se encuentra el operador y sus filtros.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Página en la que se encuentra el usuario.',
|
|
|
|
|
name: 'pagina',
|
|
|
|
|
type: 'string',
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Equipo que se quiere usar como filtro.',
|
|
|
|
|
name: 'equipo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id de la institución que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_institucion',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del modulo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_modulo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del préstamo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_prestamo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
activos(@Request() req, @Query() query: ActivosDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-10-25 16:45:38 -05:00
|
|
|
return this.prestamoService.findAll(query);
|
2022-06-08 23:52:05 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-10-24 09:30:19 -05:00
|
|
|
@Serealize(MessageOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Put('cancelar-operador')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description: 'Endpoint que cancela un prestamo por parte del operador.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 15:16:24 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description: 'Ambas variables son obligatorias.',
|
2022-07-07 23:56:17 -05:00
|
|
|
examples: {
|
2022-09-28 21:43:17 -05:00
|
|
|
ejemplo: { value: { id_prestamo: 1, motivo: '' } },
|
2022-07-07 23:56:17 -05:00
|
|
|
},
|
2022-06-12 15:16:24 -05:00
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
cancelarOperador(@Request() req, @Body() body: CancelarOperadorDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
2022-10-26 03:25:15 -05:00
|
|
|
const modulo: Modulo = req.user.modulo;
|
2022-08-06 18:39:19 -05:00
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-06-12 15:16:24 -05:00
|
|
|
return this.prestamoService.cancelarOperador(
|
2022-09-28 21:43:17 -05:00
|
|
|
operador,
|
2022-06-12 15:16:24 -05:00
|
|
|
body.id_prestamo,
|
2022-06-14 17:11:59 -05:00
|
|
|
body.motivo,
|
2022-10-26 03:25:15 -05:00
|
|
|
modulo,
|
2022-06-12 15:16:24 -05:00
|
|
|
);
|
|
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-10-24 09:30:19 -05:00
|
|
|
@Serealize(MessageOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Put('cancelar-usuario')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description: 'Endpoint que cancela el prestamo del usuario.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 15:16:24 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description: 'La variable id_prestamo es obligatoria.',
|
|
|
|
|
examples: { ejemplo: { value: { id_prestamo: 1 } } },
|
|
|
|
|
})
|
2022-10-25 16:45:38 -05:00
|
|
|
cancelarUsuario(@Request() req) {
|
2022-08-06 18:39:19 -05:00
|
|
|
const usuario: Usuario = req.user.usuario;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarUsuario(usuario);
|
2022-10-25 16:45:38 -05:00
|
|
|
return this.prestamoService.cancelarUsuario(usuario);
|
2022-06-12 15:16:24 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-10-02 20:15:23 -05:00
|
|
|
@Serealize(EquipoMinOutputDto)
|
2022-04-17 22:51:49 -05:00
|
|
|
@Put('entregar')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description: 'Endpoint que actualiza el status del equipo a "En uso".',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 15:39:29 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description: 'Ambas variables son obligatorias.',
|
2022-09-28 21:43:17 -05:00
|
|
|
examples: { ejemplo: { value: { id_prestamo: 1 } } },
|
2022-06-12 15:39:29 -05:00
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
entregar(@Request() req, @Body() body: EntregarDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
2022-10-26 03:25:15 -05:00
|
|
|
const modulo: Modulo = req.user.modulo;
|
2022-08-06 18:39:19 -05:00
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-11-03 02:48:47 -06:00
|
|
|
return this.prestamoService.entregar(operador, modulo, body.id_prestamo);
|
2022-06-12 15:39:29 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-11-02 22:10:48 -06:00
|
|
|
// @Serealize(PrestamosOutputDto)
|
|
|
|
|
@Get('reporte')
|
|
|
|
|
@UseGuards(AuthGuard('jwt'))
|
|
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna todos los prestamos dependiendo de la página en la que se encuentra el operador y sus filtros.',
|
|
|
|
|
})
|
|
|
|
|
@ApiBearerAuth('jwt')
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Equipo que se quiere usar como filtro.',
|
|
|
|
|
name: 'equipo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Fecha inicio que se quiere usar como filtro.',
|
|
|
|
|
name: 'fechaInicio',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Fecha fin se quiere usar como filtro.',
|
|
|
|
|
name: 'fechaFin',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id de la institución que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_institucion',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del modulo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_modulo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del préstamo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_prestamo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
reporte(@Request() req, @Query() query: HistorialDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
|
|
|
|
this.validarUsuarioService.validarOperador(operador);
|
|
|
|
|
return this.prestamoService.findAll(query);
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-28 19:29:10 -05:00
|
|
|
@Serealize(PrestamosOutputDto)
|
2022-04-17 22:51:49 -05:00
|
|
|
@Get('historial')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna 25 prestamos dependiendo de la página en la que se encuentra el operador y sus filtros.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Página en la que se encuentra el usuario.',
|
|
|
|
|
name: 'pagina',
|
|
|
|
|
type: 'string',
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Equipo que se quiere usar como filtro.',
|
|
|
|
|
name: 'equipo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Fecha inicio que se quiere usar como filtro.',
|
|
|
|
|
name: 'fechaInicio',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Fecha fin se quiere usar como filtro.',
|
|
|
|
|
name: 'fechaFin',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id de la institución que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_institucion',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del modulo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_modulo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del préstamo que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_prestamo',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de carrito que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_carrito',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del tipo de usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'id_tipo_usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Usuario que se quiere usar como filtro.',
|
|
|
|
|
name: 'usuario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
required: false,
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
historial(@Request() req, @Query() query: HistorialDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
2022-09-05 06:53:59 -05:00
|
|
|
this.validarUsuarioService.validarOperador(operador);
|
2022-10-25 16:45:38 -05:00
|
|
|
return this.prestamoService.findAll(query);
|
2022-06-12 13:35:47 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-06-28 19:29:10 -05:00
|
|
|
@Serealize(PrestamosEquipoOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Get('historial-equipo')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna 25 prestamos de un usuario dependiendo de la página en la que se encuentra el operador y sus filtros.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiQuery({
|
2022-07-07 23:56:17 -05:00
|
|
|
description: 'Id del equipo.',
|
|
|
|
|
name: 'id_equipo',
|
2022-06-12 13:35:47 -05:00
|
|
|
type: 'string',
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
2022-07-07 23:56:17 -05:00
|
|
|
description: 'Página en la que se encuentra el usuario.',
|
|
|
|
|
name: 'pagina',
|
2022-06-12 13:35:47 -05:00
|
|
|
type: 'string',
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
historialEquipo(@Request() req, @Query() query: IdEquipoPaginaDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-06-12 13:35:47 -05:00
|
|
|
return this.prestamoService.findAllByIdEquipo(
|
|
|
|
|
parseInt(query.id_equipo),
|
|
|
|
|
parseInt(query.pagina),
|
|
|
|
|
);
|
|
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-06-28 19:29:10 -05:00
|
|
|
@Serealize(PrestamosUsuarioOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Get('historial-usuario')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna 25 prestamos de un equipo dependiendo de la página en la que se encuentra el operador y sus filtros.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 13:35:47 -05:00
|
|
|
@ApiQuery({
|
2022-07-07 23:56:17 -05:00
|
|
|
description: 'Id del usuario.',
|
|
|
|
|
name: 'id_usuario',
|
2022-06-12 13:35:47 -05:00
|
|
|
type: 'string',
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
2022-07-07 23:56:17 -05:00
|
|
|
description: 'Página en la que se encuentra el usuario.',
|
|
|
|
|
name: 'pagina',
|
2022-06-12 13:35:47 -05:00
|
|
|
type: 'string',
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
historialUsuario(@Request() req, @Query() query: IdUsuarioPaginaDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-06-12 13:35:47 -05:00
|
|
|
return this.prestamoService.findAllByIdUsuario(
|
|
|
|
|
parseInt(query.id_usuario),
|
|
|
|
|
parseInt(query.pagina),
|
|
|
|
|
);
|
|
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-07-10 23:41:32 -05:00
|
|
|
@Serealize(PrestamoOutputDto)
|
2022-04-17 22:51:49 -05:00
|
|
|
@Post()
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 15:16:24 -05:00
|
|
|
@ApiOperation({ description: 'Endpoint que crea un prestamo nuevo.' })
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 15:16:24 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description:
|
|
|
|
|
'Todas las variables a excepción de id_programa y id_tipo_entrada son obligatorios.',
|
|
|
|
|
examples: {
|
|
|
|
|
ejemplo: {
|
|
|
|
|
value: {
|
|
|
|
|
id_modulo: 1,
|
|
|
|
|
id_tipo_carrito: 1,
|
2022-07-07 23:56:17 -05:00
|
|
|
_id_programa: 1,
|
|
|
|
|
_id_tipo_entrada: 1,
|
2022-06-12 15:16:24 -05:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
pedir(@Request() req, @Body() body: PedirDto) {
|
|
|
|
|
const usuario: Usuario = req.user.usuario;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarUsuario(usuario);
|
2022-06-08 23:37:29 -05:00
|
|
|
return this.prestamoService.create(
|
2022-08-06 19:56:37 -05:00
|
|
|
usuario,
|
2022-06-08 23:37:29 -05:00
|
|
|
body.id_modulo,
|
|
|
|
|
body.id_tipo_carrito,
|
|
|
|
|
body.id_programa,
|
|
|
|
|
body.id_tipo_entrada,
|
|
|
|
|
);
|
|
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-06-14 15:39:13 -05:00
|
|
|
@Serealize(PrestamoOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Get('prestamo-id-prestamo')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 12:31:02 -05:00
|
|
|
@ApiOperation({ description: 'Endpoint que retorna un préstamo por su id.' })
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-07-07 23:56:17 -05:00
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'Id del préstamo.',
|
|
|
|
|
name: 'id_prestamo',
|
|
|
|
|
type: 'text',
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
prestamoIdPrestamo(@Request() req, @Query() query: IdPrestamoDto) {
|
2022-09-02 16:15:05 -05:00
|
|
|
const usuarioOperador: Operador | Usuario =
|
|
|
|
|
req.user.operador || req.user.usuario;
|
2022-08-06 18:39:19 -05:00
|
|
|
|
2022-10-23 17:52:46 -05:00
|
|
|
if (usuarioOperador instanceof Usuario)
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarUsuario(usuarioOperador);
|
|
|
|
|
else this.validarUsuarioService.validarAdminOperador(usuarioOperador);
|
2022-10-01 13:18:25 -05:00
|
|
|
return this.prestamoService.prestamoInfoById(parseInt(query.id_prestamo));
|
2022-06-12 12:31:02 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-06-28 19:29:10 -05:00
|
|
|
@Serealize(PrestamoOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Get('prestamo-id-usuario')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 12:31:02 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna un préstamo activo por el id del usuario.',
|
|
|
|
|
})
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-10-25 16:45:38 -05:00
|
|
|
prestamoIdUsuario(@Request() req) {
|
2022-08-06 18:39:19 -05:00
|
|
|
const usuario: Usuario = req.user.usuario;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarUsuario(usuario);
|
2022-11-06 23:01:12 -06:00
|
|
|
return this.prestamoService.prestamoInfoByUsuario(usuario, false);
|
2022-06-12 12:31:02 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-06-14 15:39:13 -05:00
|
|
|
@Serealize(PrestamoEquipoOutputDto)
|
2022-06-03 08:47:36 -05:00
|
|
|
@Get('prestamo-numero-inventario')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 12:31:02 -05:00
|
|
|
@ApiOperation({
|
|
|
|
|
description:
|
|
|
|
|
'Endpoint que retorna un préstamo activo por el número de inventario de un equipo.',
|
|
|
|
|
})
|
|
|
|
|
@ApiQuery({
|
|
|
|
|
description: 'El número de inventario del equipo.',
|
|
|
|
|
name: 'numero_inventario',
|
|
|
|
|
type: 'string',
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
prestamoNumeroInventario(
|
|
|
|
|
@Request() req,
|
|
|
|
|
@Query() query: NumeroInventarioDto,
|
|
|
|
|
) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
|
|
|
|
|
2022-09-02 16:15:05 -05:00
|
|
|
this.validarUsuarioService.validarAdminOperador(operador);
|
2022-10-01 13:18:25 -05:00
|
|
|
return this.prestamoService.prestamoInfoByNumeroInventario(
|
2022-10-25 16:45:38 -05:00
|
|
|
operador,
|
2022-10-01 00:28:45 -05:00
|
|
|
query.numero_inventario,
|
|
|
|
|
);
|
2022-06-12 12:31:02 -05:00
|
|
|
}
|
2022-04-17 22:51:49 -05:00
|
|
|
|
2022-10-24 09:30:19 -05:00
|
|
|
@Serealize(MessageOutputDto)
|
2022-06-14 20:57:28 -05:00
|
|
|
@Put('regresar-id-prestamo')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-12 15:39:29 -05:00
|
|
|
@ApiOperation({ description: 'Endpoint que desactiva un préstamo.' })
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-12 15:39:29 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description: 'Ambas variables son obligatorias.',
|
2022-06-14 20:57:28 -05:00
|
|
|
examples: {
|
|
|
|
|
ejemplo: {
|
|
|
|
|
value: {
|
|
|
|
|
id_prestamo: 1,
|
2022-09-29 02:51:27 -05:00
|
|
|
id_status: 1,
|
2022-06-14 20:57:28 -05:00
|
|
|
_descripcion: '',
|
2022-09-29 02:51:27 -05:00
|
|
|
_motivo: '',
|
2022-06-14 20:57:28 -05:00
|
|
|
_id_institucion_infraccion: 603,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2022-06-12 15:39:29 -05:00
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
regresarIdPrestamo(@Request() req, @Body() body: RegresarIdPrestamoDto) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
2022-11-03 02:48:47 -06:00
|
|
|
const modulo: Modulo = req.user.modulo;
|
2022-08-06 18:39:19 -05:00
|
|
|
|
2022-11-03 02:48:47 -06:00
|
|
|
this.validarUsuarioService.validarSoloOperador(operador);
|
2022-06-14 20:57:28 -05:00
|
|
|
return this.prestamoService.regresarIdPrestamo(
|
2022-09-28 21:43:17 -05:00
|
|
|
operador,
|
2022-11-03 02:48:47 -06:00
|
|
|
modulo,
|
2022-06-14 20:57:28 -05:00
|
|
|
body.id_prestamo,
|
2022-09-29 02:51:27 -05:00
|
|
|
body.id_status,
|
|
|
|
|
body.motivo,
|
2022-06-14 20:57:28 -05:00
|
|
|
body.descripcion,
|
|
|
|
|
body.id_institucion_infraccion,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-24 09:30:19 -05:00
|
|
|
@Serealize(MessageOutputDto)
|
2022-06-14 20:57:28 -05:00
|
|
|
@Put('regresar-numero-inventario')
|
2022-07-15 00:27:30 -05:00
|
|
|
@UseGuards(AuthGuard('jwt'))
|
2022-06-14 20:57:28 -05:00
|
|
|
@ApiOperation({ description: 'Endpoint que desactiva un préstamo.' })
|
2022-07-15 00:27:30 -05:00
|
|
|
@ApiBearerAuth('jwt')
|
2022-06-14 20:57:28 -05:00
|
|
|
@ApiBody({
|
|
|
|
|
description: 'Ambas variables son obligatorias.',
|
|
|
|
|
examples: {
|
|
|
|
|
ejemplo: {
|
|
|
|
|
value: {
|
|
|
|
|
numero_inventario: '',
|
2022-09-29 02:51:27 -05:00
|
|
|
id_status: 1,
|
2022-06-14 20:57:28 -05:00
|
|
|
_descripcion: '',
|
2022-09-29 02:51:27 -05:00
|
|
|
_motivo: '',
|
2022-06-14 20:57:28 -05:00
|
|
|
_id_institucion_infraccion: 603,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
2022-08-06 18:39:19 -05:00
|
|
|
regresarNumeroInventario(
|
|
|
|
|
@Request() req,
|
|
|
|
|
@Body() body: RegresarNumeroInventarioDto,
|
|
|
|
|
) {
|
|
|
|
|
const operador: Operador = req.user.operador;
|
2022-11-03 02:48:47 -06:00
|
|
|
const modulo: Modulo = req.user.modulo;
|
2022-08-06 18:39:19 -05:00
|
|
|
|
2022-11-03 02:48:47 -06:00
|
|
|
this.validarUsuarioService.validarSoloOperador(operador);
|
2022-06-14 20:57:28 -05:00
|
|
|
return this.prestamoService.regresarNumeroInventario(
|
2022-09-28 21:43:17 -05:00
|
|
|
operador,
|
2022-11-03 02:48:47 -06:00
|
|
|
modulo,
|
2022-06-14 21:43:07 -05:00
|
|
|
body.numero_inventario,
|
2022-09-29 02:51:27 -05:00
|
|
|
body.id_status,
|
|
|
|
|
body.motivo,
|
2022-06-14 20:57:28 -05:00
|
|
|
body.descripcion,
|
|
|
|
|
body.id_institucion_infraccion,
|
|
|
|
|
);
|
2022-06-12 15:39:29 -05:00
|
|
|
}
|
2022-04-04 20:53:32 -05:00
|
|
|
}
|