diff --git a/src/boards/controllers/Boards.controller.ts b/src/boards/controllers/Boards.controller.ts index 0fc656e..7ea8dc4 100644 --- a/src/boards/controllers/Boards.controller.ts +++ b/src/boards/controllers/Boards.controller.ts @@ -55,7 +55,7 @@ export class BoardsController { async findPageBoards( @Query('page') page = 1, @Query('limit') limit = 30, - ): Promise { + ): Promise<{ data: BoardResponseDTO[]; total: number }> { return await this.boardsService.findPagedBoards(page, limit); } @@ -66,7 +66,6 @@ export class BoardsController { @Patch('') async editBoard( - // @Headers('accesstoken') @Query('boardId') boardId: number, @Body() boardData: Partial, ): Promise { diff --git a/src/boards/repository/boards.repository.ts b/src/boards/repository/boards.repository.ts index fcf4699..ccc7da8 100644 --- a/src/boards/repository/boards.repository.ts +++ b/src/boards/repository/boards.repository.ts @@ -1,7 +1,6 @@ import { EntityManager } from 'typeorm'; import { Board } from '../entities/board.entity'; import { CreateBoardDto } from '../dto/create.board.dto'; -// import { User } from 'src/users/entities/user.entity'; import { Injectable } from '@nestjs/common'; @Injectable() @@ -18,6 +17,10 @@ export class BoardRepository { return await this.entityManager.save(Board, board); } + async findTotalBoards(): Promise { + return this.entityManager.count(Board); + } + async findPagedBoards(skip: number, limit: number): Promise { return await this.entityManager.find(Board, { relations: ['user', 'user.userImage', 'boardImages'], diff --git a/src/boards/services/Boards.service.ts b/src/boards/services/Boards.service.ts index 9a010c0..c8263c7 100644 --- a/src/boards/services/Boards.service.ts +++ b/src/boards/services/Boards.service.ts @@ -18,11 +18,12 @@ export class BoardsService { async findPagedBoards( page: number, limit: number, - ): Promise { + ): Promise<{ data: BoardResponseDTO[]; total: number }> { const skip = (page - 1) * limit; const take = limit; const boards = await this.boardRepository.findPagedBoards(skip, take); - return boards.map((board) => ({ + const total = await this.boardRepository.findTotalBoards(); + const boardResponse: BoardResponseDTO[] = boards.map((board) => ({ id: board.id, head: board.head, body: board.body.substring(0, 30), @@ -31,7 +32,6 @@ export class BoardsService { createAt: board.createAt, updateAt: board.updateAt, userId: { - // userid 중복으로 보내지는거 수정해야함.추후 수정예정 id: board.user.id, name: board.user.name, userImage: board.user.userImage ? board.user.userImage : [], @@ -41,6 +41,8 @@ export class BoardsService { imageUrl: image.imageUrl, })), })); + + return { data: boardResponse, total }; } async findOneBoard(boardId: number): Promise {