Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b64fb4690d | |||
| 4e9ddb6bce | |||
| f86c4d4f2a | |||
| 8e74802de7 |
@@ -23,6 +23,7 @@ import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.servic
|
|||||||
import { CarritoDto } from './dto/input/carrito.dto';
|
import { CarritoDto } from './dto/input/carrito.dto';
|
||||||
import { CarritosDto } from './dto/input/carritos.dto';
|
import { CarritosDto } from './dto/input/carritos.dto';
|
||||||
import { CreateCarritoDto } from './dto/input/create.dto';
|
import { CreateCarritoDto } from './dto/input/create.dto';
|
||||||
|
import { MoverModuloCarritoDto } from './dto/input/mover-modulo.dto';
|
||||||
import { UpdateCarritoDto } from './dto/input/update.dto';
|
import { UpdateCarritoDto } from './dto/input/update.dto';
|
||||||
import { MessageOutputDto } from '../dto/output/message.dto';
|
import { MessageOutputDto } from '../dto/output/message.dto';
|
||||||
import { CarritoOutputDto } from './dto/output/carrito.dto';
|
import { CarritoOutputDto } from './dto/output/carrito.dto';
|
||||||
@@ -183,4 +184,30 @@ export class CarritoController {
|
|||||||
body.numero_equipos,
|
body.numero_equipos,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Serealize(MessageOutputDto)
|
||||||
|
@Put('mover-modulo')
|
||||||
|
@UseGuards(AuthGuard('jwt'))
|
||||||
|
@ApiOperation({
|
||||||
|
description:
|
||||||
|
'Mover un carrito a otro módulo de la misma institución (superadmin).',
|
||||||
|
})
|
||||||
|
@ApiBearerAuth('jwt')
|
||||||
|
@ApiBody({
|
||||||
|
description: 'Variables que necesita el endpoint.',
|
||||||
|
examples: {
|
||||||
|
ejemplo: {
|
||||||
|
value: {
|
||||||
|
id_carrito: 1,
|
||||||
|
id_modulo: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
moverModulo(@Request() req, @Body() body: MoverModuloCarritoDto) {
|
||||||
|
const superAdmin: Operador = req.user.operador;
|
||||||
|
|
||||||
|
this.validarUsuarioService.validarSuperAdmin(superAdmin);
|
||||||
|
return this.carritoService.moverModulo(body.id_carrito, body.id_modulo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
|
ConflictException,
|
||||||
ForbiddenException,
|
ForbiddenException,
|
||||||
forwardRef,
|
forwardRef,
|
||||||
Inject,
|
Inject,
|
||||||
@@ -243,6 +244,32 @@ export class CarritoService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async moverModulo(
|
||||||
|
id_carrito: number,
|
||||||
|
id_modulo: number,
|
||||||
|
): Promise<{ message: string }> {
|
||||||
|
const carrito = await this.findById(id_carrito);
|
||||||
|
const modulo = await this.moduloService.findById(id_modulo);
|
||||||
|
|
||||||
|
// Validamos que el módulo destino no sea el módulo actual del carrito
|
||||||
|
if (carrito.modulo.id_modulo === modulo.id_modulo)
|
||||||
|
throw new ConflictException('Este carrito ya pertenece a este módulo.');
|
||||||
|
// Validamos que el módulo destino pertenezca a la misma institución del carrito
|
||||||
|
if (
|
||||||
|
carrito.modulo.institucion.id_institucion !=
|
||||||
|
modulo.institucion.id_institucion
|
||||||
|
)
|
||||||
|
throw new ForbiddenException(
|
||||||
|
'No puedes mover este carrito a un módulo que no pertenece a la misma institución.',
|
||||||
|
);
|
||||||
|
carrito.modulo = modulo;
|
||||||
|
return this.repository
|
||||||
|
.save(carrito)
|
||||||
|
.then((_) => ({
|
||||||
|
message: 'Se movió correctamente el carrito de módulo.',
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
private viewToCarrito(infoCarrito: InformacionCarritoView): Carrito {
|
private viewToCarrito(infoCarrito: InformacionCarritoView): Carrito {
|
||||||
if (!infoCarrito) return null;
|
if (!infoCarrito) return null;
|
||||||
return this.repository.create({
|
return this.repository.create({
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { IsInt } from 'class-validator';
|
||||||
|
|
||||||
|
export class MoverModuloCarritoDto {
|
||||||
|
@IsInt()
|
||||||
|
id_carrito: number;
|
||||||
|
|
||||||
|
@IsInt()
|
||||||
|
id_modulo: number;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user