chore: uploader service

This commit is contained in:
Matin
2025-01-26 16:08:52 +03:30
parent d6985fff26
commit e4425a07d6
13 changed files with 1426 additions and 6 deletions
@@ -0,0 +1,33 @@
import { FileInterceptor } from "@nest-lab/fastify-multer";
import { Controller, Post, UploadedFile, UseInterceptors } from "@nestjs/common";
import { ApiBody, ApiConsumes, ApiOperation, ApiTags } from "@nestjs/swagger";
import { UploaderService } from "./uploader.service";
import { IFile } from "../utils/interfaces/IFile";
@ApiTags("Uploader")
@Controller("uploader")
export class UploaderController {
constructor(private readonly uploaderService: UploaderService) {}
@ApiOperation({ summary: "Uploads a single file" })
@ApiConsumes("multipart/form-data")
@UseInterceptors(FileInterceptor("file"))
@ApiBody({
required: true,
schema: {
type: "object",
properties: {
file: {
type: "string",
format: "binary",
},
},
},
})
@Post("single-file")
async uploadFile(@UploadedFile() file: IFile) {
console.log(file);
return await this.uploaderService.upload(file);
}
}
+14
View File
@@ -0,0 +1,14 @@
import { Module } from "@nestjs/common";
import { UploaderController } from "./uploader.controller";
import { UploaderService } from "./uploader.service";
import { S3Service } from "../utils/providers/s3.service";
import { UtilsModule } from "../utils/utils.module";
@Module({
imports: [UtilsModule],
providers: [UploaderService, S3Service],
controllers: [UploaderController],
exports: [UploaderService],
})
export class UploaderModule {}
+12
View File
@@ -0,0 +1,12 @@
import { Injectable } from "@nestjs/common";
import { S3Service } from "../utils/providers/s3.service";
@Injectable()
export class UploaderService {
constructor(private s3Service: S3Service) {}
async upload(file: any) {
return await this.s3Service.upload(file);
}
}