Skip to content

Commit 358287a

Browse files
committed
♻️ refactor: 파일 추가 API Response DTO 사용, ApiResponse 사용하도록 변경
1 parent 8895c4b commit 358287a

File tree

2 files changed

+10
-27
lines changed

2 files changed

+10
-27
lines changed

server/src/file/controller/file.controller.ts

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,41 @@ import {
1111
} from '@nestjs/common';
1212
import { FileInterceptor } from '@nestjs/platform-express';
1313
import { FileService } from '../service/file.service';
14-
1514
import { ApiTags } from '@nestjs/swagger';
1615
import { JwtGuard } from '../../common/guard/jwt.guard';
1716
import { createDynamicStorage } from '../../common/disk/diskStorage';
1817
import { ApiResponse } from '../../common/response/common.response';
1918
import { ApiUploadProfileFile } from '../api-docs/uploadProfileFile.api-docs';
2019
import { ApiDeleteFile } from '../api-docs/deleteFile.api-docs';
21-
import { FileUploadResponseDto } from '../dto/createFile.dto';
20+
import { FileDeleteRequestDto } from '../dto/request/deleteFile.dto';
2221

2322
@ApiTags('File')
2423
@Controller('file')
2524
@UseGuards(JwtGuard)
2625
export class FileController {
2726
constructor(private readonly fileService: FileService) {}
2827

29-
@Post('upload/profile')
28+
@Post('profile')
3029
@ApiUploadProfileFile()
3130
@UseInterceptors(FileInterceptor('file', createDynamicStorage()))
3231
async upload(@UploadedFile() file: any, @Req() req) {
3332
if (!file) {
3433
throw new BadRequestException('파일이 선택되지 않았습니다.');
3534
}
3635

37-
const responseDto = await this.fileService.create(
38-
file,
39-
Number.parseInt(req.user.id),
40-
);
41-
4236
return ApiResponse.responseWithData(
4337
'파일 업로드에 성공했습니다.',
44-
responseDto,
38+
await this.fileService.create(file, Number.parseInt(req.user.id)),
4539
);
4640
}
4741

4842
// TODO: 권한검사 추가
4943
@Delete(':id')
5044
@ApiDeleteFile()
51-
async deleteFile(@Param('id') id: string, @Req() req) {
52-
const fileId = parseInt(id, 10);
53-
if (isNaN(fileId)) {
54-
throw new BadRequestException('유효하지 않은 파일 ID입니다.');
55-
}
56-
57-
await this.fileService.deleteFile(fileId);
58-
return { message: '파일이 성공적으로 삭제되었습니다.' };
45+
async deleteFile(@Param() fileDeleteRequestDto: FileDeleteRequestDto) {
46+
await this.fileService.deleteFile(fileDeleteRequestDto.id);
47+
return ApiResponse.responseWithNoContent(
48+
'파일이 성공적으로 삭제되었습니다.',
49+
);
5950
}
6051
}

server/src/file/service/file.service.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { File } from '../entity/file.entity';
33
import { unlinkSync, existsSync } from 'fs';
44
import { FileRepository } from '../repository/file.repository';
55
import { User } from '../../user/entity/user.entity';
6-
import { FileUploadResponseDto } from '../dto/createFile.dto';
6+
import { FileUploadResponseDto } from '../dto/response/createFile.dto';
77

88
@Injectable()
99
export class FileService {
@@ -21,15 +21,7 @@ export class FileService {
2121
} as File);
2222
const accessUrl = this.generateAccessUrl(path);
2323

24-
return {
25-
id: savedFile.id,
26-
originalName: savedFile.originalName,
27-
mimetype: savedFile.mimetype,
28-
size: savedFile.size,
29-
url: accessUrl,
30-
userId: userId,
31-
createdAt: savedFile.createdAt,
32-
};
24+
return FileUploadResponseDto.toResponseDto(savedFile, accessUrl);
3325
}
3426

3527
private generateAccessUrl(filePath: string): string {

0 commit comments

Comments
 (0)