multer listo
This commit is contained in:
parent
3194b12417
commit
08ae09f2d7
19
package-lock.json
generated
19
package-lock.json
generated
@ -35,6 +35,7 @@
|
||||
"@types/bcrypt": "^5.0.0",
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/multer": "^1.4.7",
|
||||
"@types/node": "^16.0.0",
|
||||
"@types/supertest": "^2.0.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
||||
@ -1974,6 +1975,15 @@
|
||||
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/multer": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz",
|
||||
"integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/express": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "16.11.26",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
|
||||
@ -11227,6 +11237,15 @@
|
||||
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/multer": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz",
|
||||
"integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/express": "*"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "16.11.26",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
|
||||
|
@ -47,6 +47,7 @@
|
||||
"@types/bcrypt": "^5.0.0",
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/multer": "^1.4.7",
|
||||
"@types/node": "^16.0.0",
|
||||
"@types/supertest": "^2.0.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
||||
|
@ -47,6 +47,7 @@ import { TipoUsuario } from './tipo-usuario/entity/tipo-usuario.entity';
|
||||
import { Usuario } from './usuario/entity/usuario.entity';
|
||||
import { AuthModule } from './auth/auth.module';
|
||||
import { BcryptModule } from './bcrypt/bcrypt.module';
|
||||
import { UploadFileModule } from './upload-file/upload-file.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -111,6 +112,7 @@ import { BcryptModule } from './bcrypt/bcrypt.module';
|
||||
UsuarioModule,
|
||||
InstitucionTipoCarritoModule,
|
||||
BcryptModule,
|
||||
UploadFileModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
18
src/upload-file/upload-file.controller.spec.ts
Normal file
18
src/upload-file/upload-file.controller.spec.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UploadFileController } from './upload-file.controller';
|
||||
|
||||
describe('UploadFileController', () => {
|
||||
let controller: UploadFileController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [UploadFileController],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<UploadFileController>(UploadFileController);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
});
|
49
src/upload-file/upload-file.controller.ts
Normal file
49
src/upload-file/upload-file.controller.ts
Normal file
@ -0,0 +1,49 @@
|
||||
import {
|
||||
Controller,
|
||||
Get,
|
||||
Post,
|
||||
Query,
|
||||
Response,
|
||||
UploadedFile,
|
||||
UseInterceptors,
|
||||
} from '@nestjs/common';
|
||||
import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import { UploadFileService } from './upload-file.service';
|
||||
import { IdInstitucionDto } from 'src/dto/id-institucion.dto';
|
||||
|
||||
@Controller('upload-file')
|
||||
export class UploadFileController {
|
||||
constructor(private uploadFileService: UploadFileService) {}
|
||||
|
||||
@Post('carga-masiva-equipos')
|
||||
@UseInterceptors(FileInterceptor('file'))
|
||||
cargaMasivaEquipos(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: IdInstitucionDto,
|
||||
) {
|
||||
this.uploadFileService.createEquipos(file, Number(query.id_institucion));
|
||||
}
|
||||
|
||||
@Post('carga-masiva-usuarios')
|
||||
@UseInterceptors(FileInterceptor('file'))
|
||||
cargaMasivaUsuarios(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: IdInstitucionDto,
|
||||
) {
|
||||
this.uploadFileService.createEquipos(file, Number(query.id_institucion));
|
||||
}
|
||||
|
||||
@Get('download-logo')
|
||||
downloadLogo(@Response() res, @Query() query: IdInstitucionDto) {
|
||||
return this.uploadFileService.downloadLogo(Number(query.id_institucion));
|
||||
}
|
||||
|
||||
@Post('upload-logo')
|
||||
@UseInterceptors(FileInterceptor('file'))
|
||||
uploadLogo(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: IdInstitucionDto,
|
||||
) {
|
||||
this.uploadFileService.uploadLogo(file, Number(query.id_institucion));
|
||||
}
|
||||
}
|
27
src/upload-file/upload-file.module.ts
Normal file
27
src/upload-file/upload-file.module.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { ConflictException, Module } from '@nestjs/common';
|
||||
import { MulterModule } from '@nestjs/platform-express';
|
||||
import { UploadFileController } from './upload-file.controller';
|
||||
import { UploadFileService } from './upload-file.service';
|
||||
import { EquipoModule } from 'src/equipo/equipo.module';
|
||||
import { UsuarioModule } from 'src/usuario/usuario.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
MulterModule.register({
|
||||
dest: './upload',
|
||||
fileFilter: (req, file, cb) => {
|
||||
if (!file.originalname.match(/\.(jpg|jpeg|png|csv)/))
|
||||
return cb(
|
||||
new ConflictException('Extención de archivo no valida.'),
|
||||
false,
|
||||
);
|
||||
return cb(null, true);
|
||||
},
|
||||
}),
|
||||
EquipoModule,
|
||||
UsuarioModule,
|
||||
],
|
||||
controllers: [UploadFileController],
|
||||
providers: [UploadFileService],
|
||||
})
|
||||
export class UploadFileModule {}
|
18
src/upload-file/upload-file.service.spec.ts
Normal file
18
src/upload-file/upload-file.service.spec.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UploadFileService } from './upload-file.service';
|
||||
|
||||
describe('UploadFileService', () => {
|
||||
let service: UploadFileService;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [UploadFileService],
|
||||
}).compile();
|
||||
|
||||
service = module.get<UploadFileService>(UploadFileService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
});
|
19
src/upload-file/upload-file.service.ts
Normal file
19
src/upload-file/upload-file.service.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { EquipoService } from 'src/equipo/equipo.service';
|
||||
import { UsuarioService } from 'src/usuario/usuario.service';
|
||||
|
||||
@Injectable()
|
||||
export class UploadFileService {
|
||||
constructor(
|
||||
private equipoService: EquipoService,
|
||||
private usuarioService: UsuarioService,
|
||||
) {}
|
||||
|
||||
createEquipos(file: Express.Multer.File, id_institucion: number) {}
|
||||
|
||||
createUsuarios(file: Express.Multer.File, id_institucion: number) {}
|
||||
|
||||
downloadLogo(id_institucion: number) {}
|
||||
|
||||
uploadLogo(file: Express.Multer.File, id_institucion: number) {}
|
||||
}
|
Loading…
Reference in New Issue
Block a user