Skip to content

Commit 4985b4b

Browse files
authored
Merge pull request #160 from boostcampwm-2024/feature-be-#159
feat: 페이지 생성 시 page id 반환
2 parents c6819c5 + ce4e338 commit 4985b4b

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { ApiProperty } from '@nestjs/swagger';
2+
import { IsInt, IsString } from 'class-validator';
3+
4+
export class CreatePageResponseDto {
5+
@ApiProperty({
6+
example: 'OO 생성에 성공했습니다.',
7+
description: 'api 요청 결과 메시지',
8+
})
9+
@IsString()
10+
message: string;
11+
12+
@ApiProperty({
13+
example: 1,
14+
description: '페이지의 PK',
15+
})
16+
@IsInt()
17+
pageId: number;
18+
}

backend/src/page/page.controller.spec.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,18 @@ describe('PageController', () => {
4747
};
4848
const expectedResponse = {
4949
message: PageResponseMessage.PAGE_CREATED,
50+
pageId: 1,
5051
};
51-
52+
const newDate = new Date();
53+
jest.spyOn(pageService, 'createPage').mockResolvedValue({
54+
id: 1,
55+
title: 'New Page',
56+
content: {} as JSON,
57+
createdAt: newDate,
58+
updatedAt: newDate,
59+
version: 1,
60+
node: null,
61+
});
5262
const result = await controller.createPage(dto);
5363

5464
expect(pageService.createPage).toHaveBeenCalledWith(dto);

backend/src/page/page.controller.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { ApiBody, ApiOperation, ApiResponse } from '@nestjs/swagger';
1717
import { MessageResponseDto } from './dtos/messageResponse.dto';
1818
import { FindPagesResponseDto } from './dtos/findPagesResponse.dto';
1919
import { FindPageResponseDto } from './dtos/findPageResponse.dto';
20+
import { CreatePageResponseDto } from './dtos/createPageResponse.dto';
2021

2122
export enum PageResponseMessage {
2223
PAGE_CREATED = '페이지와 노드를 생성했습니다.',
@@ -31,7 +32,7 @@ export class PageController {
3132
constructor(private readonly pageService: PageService) {}
3233

3334
@ApiResponse({
34-
type: MessageResponseDto,
35+
type: CreatePageResponseDto,
3536
})
3637
@ApiOperation({ summary: '페이지를 생성하고 노드도 생성합니다.' })
3738
@ApiBody({
@@ -40,10 +41,13 @@ export class PageController {
4041
})
4142
@Post('/')
4243
@HttpCode(HttpStatus.CREATED)
43-
async createPage(@Body() body: CreatePageDto): Promise<MessageResponseDto> {
44-
await this.pageService.createPage(body);
44+
async createPage(
45+
@Body() body: CreatePageDto,
46+
): Promise<CreatePageResponseDto> {
47+
const newPage = await this.pageService.createPage(body);
4548
return {
4649
message: PageResponseMessage.PAGE_CREATED,
50+
pageId: newPage.id,
4751
};
4852
}
4953

0 commit comments

Comments
 (0)