institucion endpoints restringidos a usuario

This commit is contained in:
xXpuma99Xx 2022-08-01 01:30:41 -05:00
parent 59bbb1218e
commit 20d8081c84
10 changed files with 79 additions and 39 deletions

View File

@ -46,7 +46,7 @@ export class CarreraProgramaController {
create(@Request() req, @Body() body: CreateCarreraProgramaDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.carreraProgramaService.create(
admin,
@ -69,7 +69,7 @@ export class CarreraProgramaController {
delete(@Request() req, @Body() body: DeleteCarreraProgramaDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.carreraProgramaService.delete(admin, body.id_carrera_programa);
}

View File

@ -53,7 +53,7 @@ export class HoraExcepcionController {
create(@Request() req, @Body() body: CreateHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.horaExcepcionService.create(
admin,
@ -76,7 +76,7 @@ export class HoraExcepcionController {
delete(@Request() req, @Body() body: DeleteHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.horaExcepcionService.delete(admin, body.id_hora_excepcion);
}
@ -118,7 +118,7 @@ export class HoraExcepcionController {
update(@Request() req, @Body() body: UpdateHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.horaExcepcionService.update(admin, body);
}

View File

@ -87,7 +87,7 @@ export class InstitucionDiaController {
update(@Request() req, @Body() body: UpdateInstitucionDiaDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionDiaService.update(admin, body);
}

View File

@ -44,7 +44,7 @@ export class InstitucionInfraccionController {
create(@Request() req, @Body() body: CreateInstitucionInfraccionDto) {
const superAdmin: Operador = req.user.operador;
if (superAdmin.tipoUsuario.id_tipo_usuario != 2)
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionInfraccionService.create(body.infraccion);
}
@ -91,7 +91,7 @@ export class InstitucionInfraccionController {
update(@Request() req, @Body() body: UpdateInstitucionInfraccionDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionInfraccionService.update(admin, body);
}

View File

@ -43,7 +43,7 @@ export class InstitucionProgramaController {
create(@Request() req, @Body() body: CreateProgramaDto) {
const superAdmin: Operador = req.user.operador;
if (superAdmin.tipoUsuario.id_tipo_usuario != 2)
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionProgramaService.create(body.programa);
}
@ -111,7 +111,7 @@ export class InstitucionProgramaController {
update(@Request() req, @Body() body: UpdateProgramaDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionProgramaService.update(admin, body);
}

View File

@ -45,7 +45,7 @@ export class InstitucionTipoCarritoController {
create(@Request() req, @Body() body: CreateInstitucionTipoCarritoDto) {
const superAdmin: Operador = req.user.operador;
if (superAdmin.tipoUsuario.id_tipo_usuario != 2)
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionTipoCarritoService.create(
body.letra,
@ -119,7 +119,7 @@ export class InstitucionTipoCarritoController {
update(@Request() req, @Body() body: UpdateInstitucionTipoCarritoDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionTipoCarritoService.update(admin, body);
}

View File

@ -43,7 +43,7 @@ export class InstitucionTipoEntradaController {
create(@Request() req, @Body() body: CreateInstitucionTipoEntradaDto) {
const superAdmin: Operador = req.user.operador;
if (superAdmin.tipoUsuario.id_tipo_usuario != 2)
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.tipoEntradaService.create(body.tipo_entrada);
}
@ -114,7 +114,7 @@ export class InstitucionTipoEntradaController {
update(@Request() req, @Body() body: UpdateInstitucionTipoEntradaDto) {
const admin: Operador = req.user.operador;
if (admin.tipoUsuario.id_tipo_usuario != 3)
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.tipoEntradaService.update(admin, body);
}

View File

@ -1,4 +1,13 @@
import { Body, Controller, Get, Put, Query, UseGuards } from '@nestjs/common';
import {
Body,
ConflictException,
Controller,
Get,
Put,
Query,
Request,
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import {
ApiBearerAuth,
@ -9,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionService } from './institucion.service';
import { Operador } from 'src/operador/entity/operador.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { UpdateInstitucionDto } from './dto/input/update.dto';
import { InstitucionOutputDto } from './dto/output/institucion.dto';
@ -21,6 +31,15 @@ import { InstitucionesMinOutputDto } from './dto/output/instituciones-min.dto';
export class InstitucionController {
constructor(private institucionService: InstitucionService) {}
@Serealize(InstitucionesMinOutputDto)
@Get('instituciones-activas')
@ApiOperation({
description: 'Endpoint que retorna todas las instituciones activas.',
})
activas() {
return this.institucionService.findAll(true);
}
@Serealize(InstitucionMinOutputDto)
@Get()
@UseGuards(AuthGuard('jwt'))
@ -32,17 +51,6 @@ export class InstitucionController {
return this.institucionService.findAll();
}
@Serealize(InstitucionesOutputDto)
@Get('instituciones')
@UseGuards(AuthGuard('jwt'))
@ApiOperation({
description: 'Endpoint que retorna todas las instituciones.',
})
@ApiBearerAuth('jwt')
instituciones() {
return this.institucionService.findAll();
}
@Serealize(InstitucionOutputDto)
@Get('institucion')
@UseGuards(AuthGuard('jwt'))
@ -55,17 +63,29 @@ export class InstitucionController {
name: 'id_institucion',
type: 'string',
})
institucion(@Query() query: IdInstitucionDto) {
institucion(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ConflictException(
'No tienes permiso para acceder a esta información.',
);
return this.institucionService.findById(parseInt(query.id_institucion));
}
@Serealize(InstitucionesMinOutputDto)
@Get('activas')
@Serealize(InstitucionesOutputDto)
@Get('instituciones')
@UseGuards(AuthGuard('jwt'))
@ApiOperation({
description: 'Endpoint que retorna todas las instituciones activas.',
description: 'Endpoint que retorna todas las instituciones.',
})
activas() {
return this.institucionService.findAll(true);
@ApiBearerAuth('jwt')
instituciones() {
return this.institucionService.findAll();
}
@Put()
@ -95,7 +115,15 @@ export class InstitucionController {
},
},
})
update(@Body() body: UpdateInstitucionDto) {
return this.institucionService.update(body);
update(@Request() req, @Body() body: UpdateInstitucionDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ConflictException('No tienes permiso de realizar esta acción.');
return this.institucionService.update(admin, body);
}
}

View File

@ -1,7 +1,12 @@
import { Injectable, NotFoundException } from '@nestjs/common';
import {
ConflictException,
Injectable,
NotFoundException,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Institucion } from './entity/institucion.entity';
import { Operador } from 'src/operador/entity/operador.entity';
@Injectable()
export class InstitucionService {
@ -27,9 +32,16 @@ export class InstitucionService {
});
}
update(attrs: Partial<Institucion>) {
update(admin: Operador, attrs: Partial<Institucion>) {
return this.findById(attrs.id_institucion)
.then((institucion) => {
if (
admin.tipoUsuario.id_tipo_usuario === 3 &&
admin.institucion.id_institucion != institucion.id_institucion
)
throw new ConflictException(
'No puedes actualizar la información de esta institución porque no correspondes a ella.',
);
Object.assign(institucion, attrs);
return this.repository.save(institucion);
})

View File

@ -397,8 +397,8 @@ export class UploadFileService {
if (!file) throw new BadRequestException('No se mandó ningún logo.');
institucion.logo = path;
return this.institucionService
.update(institucion)
.then((_) => ({ message: 'Se subió correctamente el logo.' }));
// return this.institucionService
// .update(institucion)
// .then((_) => ({ message: 'Se subió correctamente el logo.' }));
}
}