Merge branch 'dev' of https://repositorio.acatlan.unam.mx/CIDWA/pcpuma_unam_api into pruebas
This commit is contained in:
commit
eae3bf8fdd
@ -2,12 +2,12 @@ import { ForbiddenException, Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { PassportStrategy } from '@nestjs/passport';
|
||||
import { Strategy, ExtractJwt } from 'passport-jwt';
|
||||
import { ModuloService } from 'src/modulo/modulo.service';
|
||||
import { OperadorService } from 'src/operador/operador.service';
|
||||
import { UsuarioService } from 'src/usuario/usuario.service';
|
||||
import { ModuloService } from '../../modulo/modulo.service';
|
||||
import { OperadorService } from '../../operador/operador.service';
|
||||
import { UsuarioService } from '../../usuario/usuario.service';
|
||||
import { Modulo } from '../../modulo/entity/modulo.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../../operador/entity/operador.entity';
|
||||
import { Usuario } from '../../usuario/entity/usuario.entity';
|
||||
import { JwtPayload } from '../dto/jwt-payload';
|
||||
|
||||
@Injectable()
|
||||
|
@ -19,12 +19,12 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { CarreraProgramaService } from './carrera-programa.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateCarreraProgramaDto } from './dto/input/create.dto';
|
||||
import { DeleteCarreraProgramaDto } from './dto/input/delete.dto';
|
||||
import { CarreraProgramaOutputDto } from './dto/output/carrera-programa.dto';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
|
||||
@Controller('carrera-programa')
|
||||
@ApiTags('carrera-programa')
|
||||
|
@ -7,8 +7,8 @@ import {
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { CarreraPrograma } from './entity/carrera-programa.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionCarreraService } from '../institucion-carrera/institucion-carrera.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
|
@ -2,7 +2,7 @@ import * as moment from 'moment';
|
||||
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Carrito } from 'src/carrito/entity/carrito.entity';
|
||||
import { Carrito } from '../carrito/entity/carrito.entity';
|
||||
import { CarritoMotivo } from './entity/carrito-motivo.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CarritoService } from '../carrito/carrito.service';
|
||||
|
@ -17,7 +17,7 @@ import {
|
||||
ApiQuery,
|
||||
ApiTags,
|
||||
} from '@nestjs/swagger';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { CarritoService } from './carrito.service';
|
||||
import { CarritoDto } from './dto/input/carrito.dto';
|
||||
@ -188,6 +188,7 @@ export class CarritoController {
|
||||
},
|
||||
})
|
||||
update(@Request() req, @Body() body: UpdateCarritoDto) {
|
||||
const data = { ...body };
|
||||
const operador: Operador = req.user.operador;
|
||||
|
||||
if (
|
||||
@ -198,6 +199,7 @@ export class CarritoController {
|
||||
throw new ForbiddenException(
|
||||
'No tienes los permisos necesarios para realizar esta acción.',
|
||||
);
|
||||
return this.carritoService.update(operador, body);
|
||||
delete data.motivo;
|
||||
return this.carritoService.update(operador, data, body.motivo);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
import {
|
||||
ConflictException,
|
||||
ForbiddenException,
|
||||
forwardRef,
|
||||
Inject,
|
||||
Injectable,
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
@ -8,8 +10,9 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Carrito } from './entity/carrito.entity';
|
||||
import { Modulo } from '../modulo/entity/modulo.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { TipoCarrito } from '../institucion-tipo-carrito/entity/tipo-carrito.entity';
|
||||
import { CaritoMotivoService } from '../carrito-motivo/carrito-motivo.service';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
import { MarcaService } from '../marca/marca.service';
|
||||
@ -20,6 +23,8 @@ import { ModuloService } from '../modulo/modulo.service';
|
||||
export class CarritoService {
|
||||
constructor(
|
||||
@InjectRepository(Carrito) private repository: Repository<Carrito>,
|
||||
@Inject(forwardRef(() => CaritoMotivoService))
|
||||
private caritoMotivoService: CaritoMotivoService,
|
||||
private institucionService: InstitucionService,
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
private marcaService: MarcaService,
|
||||
@ -178,7 +183,7 @@ export class CarritoService {
|
||||
});
|
||||
}
|
||||
|
||||
async update(operador: Operador, attrs: Partial<Carrito>) {
|
||||
async update(operador: Operador, attrs: Partial<Carrito>, motivo: string) {
|
||||
return this.findById(attrs.id_carrito)
|
||||
.then(async (carrito) => {
|
||||
if (
|
||||
@ -191,6 +196,14 @@ export class CarritoService {
|
||||
Object.assign(carrito, attrs);
|
||||
return this.repository.save(carrito);
|
||||
})
|
||||
.then((carrito) =>
|
||||
this.caritoMotivoService.create(
|
||||
carrito,
|
||||
operador,
|
||||
attrs.activo,
|
||||
motivo,
|
||||
),
|
||||
)
|
||||
.then((_) => ({
|
||||
message: 'Se guardaron los cambios correctamente.',
|
||||
}));
|
||||
|
@ -1,10 +1,20 @@
|
||||
import { IsBoolean, IsInt, IsOptional } from 'class-validator';
|
||||
import {
|
||||
IsBoolean,
|
||||
IsInt,
|
||||
IsNotEmpty,
|
||||
IsString,
|
||||
MaxLength,
|
||||
} from 'class-validator';
|
||||
|
||||
export class UpdateCarritoDto {
|
||||
@IsInt()
|
||||
id_carrito: number;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
activo?: boolean;
|
||||
activo: boolean;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
@MaxLength(250)
|
||||
motivo;
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { EquipoMotivoService } from './equipo-motivo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
|
||||
import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
|
||||
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { EquipoProgramaService } from './equipo-programa.service';
|
||||
import { CreateEquipoProgramaDto } from './dto/input/create.dto';
|
||||
import { DeleteEquipoProgramaDto } from './dto/input/delete.dto';
|
||||
|
@ -12,7 +12,7 @@ import { EquipoPrograma } from './entity/equipo-programa.entity';
|
||||
import { Programa } from '../institucion-programa/entity/programa.entity';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
|
||||
@Injectable()
|
||||
export class EquipoProgramaService {
|
||||
|
@ -10,7 +10,7 @@ import {
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { EquipoTipoEntradaService } from './equipo-tipo-entrada.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CreateEquipoTipoEntradaDto } from './dto/input/create.dto';
|
||||
import { DeleteEquipoTipoEntradaDto } from './dto/input/delete.dto';
|
||||
|
||||
|
@ -18,7 +18,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { EquipoService } from './equipo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { NumeroInventarioDto } from '../dto/numero-inventario.dto';
|
||||
import { EquiposDto } from './dto/input/equipos.dto';
|
||||
import { UpdateEquipoDto } from './dto/input/update.dto';
|
||||
|
@ -19,7 +19,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { HoraExcepcionService } from './hora-excepcion.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CreateHoraExcepcionDto } from './dto/input/create.dto';
|
||||
import { DeleteHoraExcepcionDto } from './dto/input/delete.dto';
|
||||
import { GetHoraExcepcionDto } from './dto/input/get.dto';
|
||||
|
@ -14,7 +14,7 @@ import {
|
||||
} from 'typeorm';
|
||||
import { HoraExcepcion } from './entity/hora-excepcion.entity';
|
||||
import { InstitucionDia } from '../institucion-dia/entity/institucion-dia.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { InstitucionDiaService } from '../institucion-dia/institucion-dia.service';
|
||||
|
||||
@Injectable()
|
||||
|
@ -18,11 +18,11 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionDiaService } from './institucion-dia.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { UpdateInstitucionDiaDto } from './dto/input/update.dto';
|
||||
import { InstitucionCarreaOutputDto } from './dto/output/institucion-carrera.dto';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
|
||||
@Controller('institucion-dia')
|
||||
@ApiTags('institucion-dia')
|
||||
|
@ -14,7 +14,7 @@ import {
|
||||
} from 'typeorm';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { InstitucionDia } from './entity/institucion-dia.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
@Injectable()
|
||||
|
@ -19,7 +19,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionInfraccionService } from './institucion-infraccion.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateInstitucionInfraccionDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionInfraccionDto } from './dto/input/update.dto';
|
||||
|
@ -7,7 +7,7 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Infraccion } from './entity/infraccion.entity';
|
||||
import { InstitucionInfraccion } from './entity/institucion-infraccion.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
@Injectable()
|
||||
|
@ -19,8 +19,8 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionProgramaService } from './institucion-programa.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateProgramaDto } from './dto/input/create.dto';
|
||||
import { UpdateProgramaDto } from './dto/input/update.dto';
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Not, Repository } from 'typeorm';
|
||||
import { InstitucionPrograma } from './entity/institucion-programa.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Programa } from './entity/programa.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
|
@ -19,8 +19,8 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionTipoCarritoService } from './institucion-tipo-carrito.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateInstitucionTipoCarritoDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionTipoCarritoDto } from './dto/input/update.dto';
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { InstitucionTipoCarrito } from './entity/institucion-tipo-carrito.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { TipoCarrito } from './entity/tipo-carrito.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
|
@ -19,8 +19,8 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateInstitucionTipoEntradaDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionTipoEntradaDto } from './dto/input/update.dto';
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { InstitucionTipoEntrada } from './entity/institucion-tipo-entrada.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { TipoEntrada } from './entity/tipo-entrada.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
|
14
src/institucion-usuario/dto/input/update.dto.ts
Normal file
14
src/institucion-usuario/dto/input/update.dto.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import { IsBoolean, IsInt, IsOptional } from 'class-validator';
|
||||
|
||||
export class UpdateInstitucionUsuarioInputDto {
|
||||
@IsInt()
|
||||
id_institucion_usuario: number;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
activo?: boolean;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
multa?: boolean;
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { InstitucionUsuarioController } from './institucion-usuario.controller';
|
||||
|
||||
describe('InstitucionUsuarioController', () => {
|
||||
let controller: InstitucionUsuarioController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [InstitucionUsuarioController],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<InstitucionUsuarioController>(InstitucionUsuarioController);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
});
|
51
src/institucion-usuario/institucion-usuario.controller.ts
Normal file
51
src/institucion-usuario/institucion-usuario.controller.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
ForbiddenException,
|
||||
Put,
|
||||
Request,
|
||||
UseGuards,
|
||||
} from '@nestjs/common';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { InstitucionUsuarioService } from './institucion-usuario.service';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { UpdateInstitucionUsuarioInputDto } from './dto/input/update.dto';
|
||||
|
||||
@Controller('institucion-usuario')
|
||||
@ApiTags('institucion-usuario')
|
||||
export class InstitucionUsuarioController {
|
||||
constructor(private institucionUsuarioService: InstitucionUsuarioService) {}
|
||||
|
||||
@Put()
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({
|
||||
description: 'Enpoint que actualiza la información de un usuario.',
|
||||
})
|
||||
@ApiBearerAuth('jwt')
|
||||
@ApiBody({
|
||||
description: 'Todas las variables a excepción de id_ son opcionales.',
|
||||
examples: {
|
||||
ejemplo: {
|
||||
value: {
|
||||
correo: '',
|
||||
id_usuario: 1,
|
||||
telefono: '',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
update(@Request() req, @Body() body: UpdateInstitucionUsuarioInputDto) {
|
||||
const admin: Operador = req.user.operador;
|
||||
|
||||
if (
|
||||
!admin ||
|
||||
(admin.tipoUsuario.id_tipo_usuario != 3 &&
|
||||
admin.tipoUsuario.id_tipo_usuario != 4)
|
||||
)
|
||||
throw new ForbiddenException(
|
||||
'No tienes los permisos necesarios para realizar esta acción.',
|
||||
);
|
||||
return this.institucionUsuarioService.update(body);
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ import { PassportModule } from '@nestjs/passport';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { InstitucionUsuarioService } from './institucion-usuario.service';
|
||||
import { InstitucionUsuario } from './entity/institucion-usuario.entity';
|
||||
import { InstitucionUsuarioController } from './institucion-usuario.controller';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -11,5 +12,6 @@ import { InstitucionUsuario } from './entity/institucion-usuario.entity';
|
||||
],
|
||||
providers: [InstitucionUsuarioService],
|
||||
exports: [InstitucionUsuarioService],
|
||||
controllers: [InstitucionUsuarioController],
|
||||
})
|
||||
export class InstitucionUsuarioModule {}
|
||||
|
@ -30,10 +30,6 @@ export class UpdateInstitucionDto {
|
||||
@IsOptional()
|
||||
dominio?: string;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
email_institucional?: boolean;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
@IsOptional()
|
||||
|
@ -19,9 +19,6 @@ export class InstitucionOutputDto {
|
||||
@Expose()
|
||||
dominio;
|
||||
|
||||
@Expose()
|
||||
email_institucional;
|
||||
|
||||
@Expose()
|
||||
institucion;
|
||||
|
||||
|
@ -8,5 +8,5 @@ export class InstitucionesMinOutputDto {
|
||||
institucion;
|
||||
|
||||
@Expose()
|
||||
email_institucional;
|
||||
dominio;
|
||||
}
|
||||
|
@ -18,7 +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 { Operador } from '../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';
|
||||
@ -127,7 +127,6 @@ export class InstitucionController {
|
||||
_activo: true,
|
||||
_dias_multa_retraso: 7,
|
||||
_dominio: '@pcpuma.acatlan.unam.mx',
|
||||
_email_institucional: true,
|
||||
_responsable: '',
|
||||
_telefono: '',
|
||||
_tiempo_entrega: 15,
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Institucion } from './entity/institucion.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
|
||||
@Injectable()
|
||||
export class InstitucionService {
|
||||
|
@ -18,7 +18,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { MarcaService } from './marca.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CreateMarcaDto } from './dto/input/create.dto';
|
||||
import { MarcaDto } from './dto/input/marca.dto';
|
||||
import { MarcaOutputDto } from './dto/output/marca.dto';
|
||||
|
@ -18,7 +18,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { ModeloService } from './modelo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CreateModeloDto } from './dto/input/create.dto';
|
||||
import { ModeloDto } from './dto/input/modelo.dto';
|
||||
import { ModeloOutputDto } from './dto/output/modelo.dto';
|
||||
|
@ -19,8 +19,8 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { ModuloService } from './modulo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CreateModuloDto } from './dto/input/create.dto';
|
||||
import { ModuloDto } from './dto/input/modulo.dto';
|
||||
|
@ -7,7 +7,7 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Modulo } from './entity/modulo.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
@Injectable()
|
||||
|
@ -19,8 +19,8 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { MultaService } from './multa.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { IdUsuarioDto } from '../dto/id-usuario.dto';
|
||||
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
|
||||
import { MultarDto } from './dto/input/multar.dto';
|
||||
|
@ -19,7 +19,7 @@ import {
|
||||
} from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { PrestamoService } from './prestamo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
|
||||
import { IdUsuarioDto } from '../dto/id-usuario.dto';
|
||||
import { IdUsuarioPaginaDto } from '../dto/id-usuario-pagina.dto';
|
||||
@ -40,7 +40,7 @@ import { PrestamoEquipoOutputDto } from './dto/output/prestamo-equipo.dto';
|
||||
import { PrestamosOutputDto } from './dto/output/prestamos.dto';
|
||||
import { PrestamosEquipoOutputDto } from './dto/output/prestamos-equipo.dto';
|
||||
import { PrestamosUsuarioOutputDto } from './dto/output/prestamos-usuario.dto';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
|
||||
@Controller('prestamo')
|
||||
@ApiTags('prestamo')
|
||||
|
@ -16,7 +16,7 @@ import { InstitucionUsuario } from '../institucion-usuario/entity/institucion-us
|
||||
import { Modulo } from '../modulo/entity/modulo.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Prestamo } from './entity/prestamo.entity';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionDiaService } from '../institucion-dia/institucion-dia.service';
|
||||
|
@ -10,7 +10,7 @@ import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { StatusService } from './status.service';
|
||||
import { StatusOutputDto } from './dto/output/status.dto';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
|
||||
@Controller('status')
|
||||
@ApiTags('status')
|
||||
|
@ -11,7 +11,7 @@ import { AuthGuard } from '@nestjs/passport';
|
||||
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { TipoUsuarioService } from './tipo-usuario.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { CreateTipoUsuarioDto } from './dto/input/create.dto';
|
||||
import { TipoUsuarioOutputDto } from './dto/output/tipo-usuario.dto';
|
||||
|
||||
|
@ -6,10 +6,12 @@ import {
|
||||
Query,
|
||||
Response,
|
||||
UploadedFile,
|
||||
UseGuards,
|
||||
UseInterceptors,
|
||||
} from '@nestjs/common';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
|
||||
import { UploadFileService } from './upload-file.service';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
|
||||
@ -19,7 +21,9 @@ export class UploadFileController {
|
||||
constructor(private uploadFileService: UploadFileService) {}
|
||||
|
||||
@Post('carga-masiva-equipos')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@UseInterceptors(FileInterceptor('csv'))
|
||||
@ApiBearerAuth('jwt')
|
||||
cargaMasivaEquipos(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: IdInstitucionDto,
|
||||
@ -34,7 +38,9 @@ export class UploadFileController {
|
||||
}
|
||||
|
||||
@Post('carga-masiva-usuarios')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@UseInterceptors(FileInterceptor('csv'))
|
||||
@ApiBearerAuth('jwt')
|
||||
cargaMasivaUsuarios(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: IdInstitucionDto,
|
||||
@ -49,6 +55,8 @@ export class UploadFileController {
|
||||
}
|
||||
|
||||
@Get('download-logo')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiBearerAuth('jwt')
|
||||
downloadLogo(@Response() res, @Query() query: IdInstitucionDto) {
|
||||
return this.uploadFileService
|
||||
.downloadLogo(parseInt(query.id_institucion))
|
||||
@ -56,16 +64,22 @@ export class UploadFileController {
|
||||
}
|
||||
|
||||
@Get('download-plantilla-equipos')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiBearerAuth('jwt')
|
||||
downloadPlantillaEquipos(@Response() res) {
|
||||
return res.download('./upload/plantilla_equipos.csv');
|
||||
}
|
||||
|
||||
@Get('download-plantilla-usuarios')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiBearerAuth('jwt')
|
||||
downloadPlantillaUsuarios(@Response() res) {
|
||||
return res.download('./upload/plantilla_alumnos.csv');
|
||||
}
|
||||
|
||||
@Post('upload-logo')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiBearerAuth('jwt')
|
||||
@UseInterceptors(FileInterceptor('logo'))
|
||||
uploadLogo(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IsEmail, IsInt, IsOptional, IsPhoneNumber } from 'class-validator';
|
||||
import { IsEmail, IsInt, IsPhoneNumber } from 'class-validator';
|
||||
|
||||
export class RegistrarUsuarioInputDto {
|
||||
@IsInt()
|
||||
@ -8,6 +8,5 @@ export class RegistrarUsuarioInputDto {
|
||||
telefono: string;
|
||||
|
||||
@IsEmail()
|
||||
@IsOptional()
|
||||
correo?: string;
|
||||
correo: string;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import {
|
||||
import { Recaptcha } from '@nestlab/google-recaptcha';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { UsuarioService } from './usuario.service';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { DgaeInputDto } from './dto/input/dgae.dto';
|
||||
import { DgpInputDto } from './dto/input/dgp.dto';
|
||||
import { RegistrarUsuarioInputDto } from './dto/input/registrar.dto';
|
||||
@ -29,7 +30,6 @@ import { UsuariosInputDto } from './dto/input/usuarios.dto';
|
||||
import { UsuarioInstitucionCarreraOutputDto } from '../institucion-usuario/dto/output/usuario-institucion-carrera.dto';
|
||||
import { UsuarioOutputDto } from './dto/output/usuario.dto';
|
||||
import { UsuariosOutputDto } from './dto/output/usuarios.dto';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
|
||||
@Controller('usuario')
|
||||
@ApiTags('usuario')
|
||||
@ -94,8 +94,8 @@ export class UsuarioController {
|
||||
registrar(@Body() body: RegistrarUsuarioInputDto) {
|
||||
return this.usuarioService.registrar(
|
||||
body.id_institucion_usuario,
|
||||
body.telefono,
|
||||
body.correo,
|
||||
body.telefono,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -221,10 +221,9 @@ export class UsuarioService {
|
||||
}));
|
||||
}
|
||||
|
||||
registrar(id_institucion_usuario: number, telefono: string, correo?: string) {
|
||||
registrar(id_institucion_usuario: number, correo: string, telefono: string) {
|
||||
const password = this.bcryptService.generarPassword();
|
||||
let message =
|
||||
'Se creó correctamente tu cuenta, ingresa a tu correo institucional y consulta tu contraseña para acceder a este servicio.';
|
||||
let message: string;
|
||||
|
||||
return this.institucionUsuarioService
|
||||
.findById(id_institucion_usuario)
|
||||
@ -236,15 +235,17 @@ export class UsuarioService {
|
||||
throw new ConflictException(
|
||||
'Ya fue registrado este número de cuenta.',
|
||||
);
|
||||
if (!institucion.email_institucional) {
|
||||
if (!correo)
|
||||
throw new ConflictException(
|
||||
'No se envió un correo electrónico para el regístro.',
|
||||
);
|
||||
else usuario.correo = correo;
|
||||
if (usuario.correo && correo != usuario.correo)
|
||||
throw new ConflictException(
|
||||
'El correo ingresado no concuerda con el ingresado a escolares.',
|
||||
);
|
||||
if (!institucion.dominio)
|
||||
message =
|
||||
'Se creó correctamente tu cuenta, ingresa a tu correo y consulta tu contraseña para acceder a este servicio.';
|
||||
} else usuario.correo = `${usuario.usuario}${institucion.dominio}`;
|
||||
else
|
||||
message =
|
||||
'Se creó correctamente tu cuenta, ingresa a tu correo institucional y consulta tu contraseña para acceder a este servicio.';
|
||||
usuario.correo = correo;
|
||||
usuario.telefono = telefono;
|
||||
usuario.password = this.bcryptService.encriptar(password);
|
||||
return this.repository.save(usuario);
|
||||
|
Loading…
Reference in New Issue
Block a user