carga masiva usuario a espera de prueba

This commit is contained in:
xXpuma99Xx 2022-06-02 14:22:27 -05:00
parent 8204119ed9
commit a308dc9c80
3 changed files with 57 additions and 36 deletions

View File

@ -1,13 +1,13 @@
export class UploadFileCargaMasivaUsuarioDto {
carrera?: string;
numero_cuenta?: string;
tipo_usuario?: string;
nombres: string;
apellido_p: string;
apellido_m: string;
carrera?: string;
numero_cuenta?: string;
tipo_usuario?: string;
}

View File

@ -1,3 +1,4 @@
import * as fs from 'fs';
import {
Controller,
Get,
@ -8,13 +9,13 @@ import {
UseInterceptors,
} from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';
import { ApiTags } from '@nestjs/swagger';
import { UploadFileService } from './upload-file.service';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { UploadFileEquipo } from './dto/upload-file-equipo'
import { ApiTags } from '@nestjs/swagger';
import { UploadFileEquipo } from './dto/upload-file-equipo';
@Controller('upload-file')
// @ApiTags('upload-file')
@ApiTags('upload-file')
export class UploadFileController {
constructor(private uploadFileService: UploadFileService) {}
@ -26,7 +27,9 @@ export class UploadFileController {
) {
return this.uploadFileService.createEquipos(
file,
parseInt(query.id_carrito), parseInt(query.id_programa), parseInt(query.id_status)
parseInt(query.id_carrito),
parseInt(query.id_programa),
parseInt(query.id_status),
);
}
@ -36,10 +39,12 @@ export class UploadFileController {
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
return this.uploadFileService.createUsuarios(
file,
parseInt(query.id_institucion),
);
return this.uploadFileService
.createUsuarios(file, parseInt(query.id_institucion))
.then((res) => {
fs.unlink(res.path, (err) => {});
return res.response;
});
}
@Get('download-logo')

View File

@ -13,6 +13,7 @@ import { UsuarioService } from '../usuario/usuario.service';
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto';
import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto';
import { Usuario } from 'src/usuario/entity/usuario.entity';
@Injectable()
export class UploadFileService {
@ -87,8 +88,9 @@ export class UploadFileService {
const institucion = await this.institucionService.findById(id_institucion);
const errores: string[] = [];
const mensajes: string[] = [];
const usuariosNuevos: Usuario[] = [];
if (!file) throw new BadRequestException('No se mando un archivo.');
if (!file) throw new BadRequestException('No se mando ningún archivo.');
return csvtojson()
.fromFile(path)
.then(async (usuarios: [UploadFileCargaMasivaUsuarioDto]) => {
@ -158,31 +160,45 @@ export class UploadFileService {
continue;
}
if (usuario) {
usuario.tipoUsuario = tipoUsuario;
usuario.activo = true;
if (institucionCarrera)
if (
usuario.tipoUsuario.id_tipo_usuario != tipoUsuario.id_tipo_usuario
)
usuario.tipoUsuario = tipoUsuario;
if (!usuario.activo) usuario.activo = true;
if (
institucionCarrera &&
usuario.institucionCarrera.id_institucion_carrera !=
institucionCarrera.id_institucion_carrera
)
usuario.institucionCarrera = institucionCarrera;
await this.usuarioService
.update(usuario)
.then((usuarioUpdated) => {});
} else {
}
// await this.usuarioService
// .create(
// usuarios[i].numero_cuenta,
// institucion.id_institucion,
// tipoUsuario.id_tipo_usuario,
// carrera ? carrera.id_carrera : null,
// )
// .then((usuario) => {});
.then(({ message }) => mensajes.push(message));
} else
await this.usuarioService
.create(
usuarios[i].numero_cuenta,
`${usuarios[i].apellido_p.trim()} ${usuarios[
i
].apellido_m.trim()} ${usuarios[i].nombres.trim()}`,
institucion,
tipoUsuario,
institucionCarrera ? institucionCarrera : null,
)
.then((res) => {
usuariosNuevos.push(res.usuario);
mensajes.push(res.message);
});
}
return fs.unlink(path, (err) => {
console.log(err);
});
})
.then((res) => {
console.log(res);
return { message: 'Se subió y cargo correctamente tu archivo csv.' };
return {
response: {
message: 'Se subió y cargó correctamente tu archivo csv.',
mensajes,
usuariosNuevos,
errores,
},
path,
};
});
}