import { Controller, Post, UseInterceptors, UploadedFile } from '@nestjs/common';
import { ApiTags, ApiBody, ApiConsumes } from '@nestjs/swagger';
import { FileInterceptor } from '@nestjs/platform-express';
import * as Multer from 'multer';

import * as DTO from "./dtos/index";
import { UploadService } from './upload.service';

@ApiTags('Upload')
@Controller('upload')
export class UploadController {
    constructor(private readonly UploadService: UploadService) { }

    @Post('file')
    @ApiConsumes('multipart/form-data')
    @ApiBody({ type: DTO.UploadDTO.Upload })
    @UseInterceptors(FileInterceptor('file'))
    async upload(@UploadedFile() file: Multer.File) {
        const response = await this.UploadService.upload_file(file);
        return response;
    }
}

