forked from modern-agile-team/4term-main-back
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix(minho/board): branch 오류로 인한 데이터 백업modern-agile-team#4
- Loading branch information
Showing
10 changed files
with
467 additions
and
128 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,52 @@ | ||
import { Controller } from '@nestjs/common'; | ||
import { | ||
Body, | ||
Controller, | ||
Delete, | ||
Get, | ||
HttpCode, | ||
HttpStatus, | ||
Logger, | ||
Param, | ||
ParseIntPipe, | ||
Post, | ||
} from '@nestjs/common'; | ||
import { BoardsService } from './boards.service'; | ||
import { CreateBoardDto } from './dto/create-board.dto'; | ||
import { Board } from './entity/board.entity'; | ||
|
||
@Controller('boards') | ||
export class BoardsController {} | ||
export class BoardsController { | ||
private logger = new Logger('BoardsController'); | ||
// logger는 middle ware로 분리 필요 | ||
|
||
constructor(private boardService: BoardsService) {} | ||
|
||
@HttpCode(200) | ||
@Get() | ||
getAllBoards(): Promise<Board[]> { | ||
this.logger.debug(`Get all boards.`); | ||
|
||
return this.boardService.getAllBoards(); | ||
// 바로 return이 아닌 변수로 빼서 return 필요 | ||
} | ||
|
||
@Get('/:boardNo') | ||
getBoardByNo(@Param('boardNo') boardNo: number): Promise<Board> { | ||
this.logger.debug(`Get board by boardNo.`); | ||
|
||
return this.boardService.getBoardByNo(boardNo); | ||
} | ||
|
||
@Post() | ||
createBoard( | ||
@Body() | ||
createBoarddto: CreateBoardDto, | ||
): Promise<Board> { | ||
return this.boardService.createBoard(createBoarddto); | ||
} | ||
|
||
@Delete('/:boardNo') | ||
deleteBoard(@Param('boardNo', ParseIntPipe) boardNo): Promise<boolean> { | ||
return this.boardService.deleteBoardByNo(boardNo); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,43 @@ | ||
import { Injectable } from '@nestjs/common'; | ||
import { Injectable, Logger, NotFoundException } from '@nestjs/common'; | ||
import { InjectRepository } from '@nestjs/typeorm'; | ||
import { CreateBoardDto } from './dto/create-board.dto'; | ||
import { Board } from './entity/board.entity'; | ||
import { BoardRepository } from './repository/board.repository'; | ||
|
||
@Injectable() | ||
export class BoardsService {} | ||
export class BoardsService { | ||
private logger = new Logger('BoardsController'); | ||
|
||
constructor( | ||
@InjectRepository(BoardRepository) | ||
private boardRepository: BoardRepository, | ||
) {} | ||
|
||
async createBoard(createBoardDto: CreateBoardDto): Promise<Board> { | ||
return this.boardRepository.createBoard(createBoardDto); | ||
} | ||
|
||
async getAllBoards(): Promise<Board[]> { | ||
return this.boardRepository.find(); | ||
} | ||
|
||
async getBoardByNo(boardNo: number): Promise<Board> { | ||
const found = await this.boardRepository.findOne(boardNo); | ||
|
||
if (!found) { | ||
new NotFoundException(`Can't find Board with boardNo ${boardNo}`); | ||
} | ||
return found; | ||
} | ||
|
||
async deleteBoardByNo(boardNo: number): Promise<boolean> { | ||
const result = await this.boardRepository.delete(boardNo); | ||
|
||
if (result.affected === 0) { | ||
throw new NotFoundException(`Can't find Board with boardNo ${boardNo}`); | ||
} | ||
|
||
this.logger.debug(`Delete success :)`); | ||
return true; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { IsBoolean, IsDate, IsNotEmpty, IsString } from 'class-validator'; | ||
export class CreateBoardDto { | ||
@IsNotEmpty() | ||
@IsString() | ||
title: string; | ||
|
||
@IsNotEmpty() | ||
@IsString() | ||
description: string; | ||
|
||
@IsBoolean() | ||
@IsNotEmpty() | ||
done: boolean; | ||
|
||
@IsString() | ||
location: string; | ||
|
||
@IsDate() | ||
time: Date; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import { Logger } from '@nestjs/common'; | ||
import { EntityRepository, Repository } from 'typeorm'; | ||
import { CreateBoardDto } from '../dto/create-board.dto'; | ||
import { Board } from '../entity/board.entity'; | ||
|
||
//db관련 CRUD 작업 하는 파일 | ||
@EntityRepository(Board) | ||
export class BoardRepository extends Repository<Board> { | ||
private logger = new Logger('BoardsRepository'); | ||
|
||
/**게시글 생성 */ | ||
async createBoard(createBoardDto: CreateBoardDto): Promise<Board> { | ||
const { title, description, done, location, time } = createBoardDto; | ||
|
||
const board = this.create({ | ||
// 이미 repository에 들어왔으니 this는 class를 호출하는 것 | ||
title, | ||
description, | ||
done, | ||
location, | ||
time, | ||
}); | ||
|
||
await this.save(board); | ||
|
||
this.logger.debug(`creating new board success :) | ||
title : ${title}`); | ||
|
||
return board; | ||
} | ||
} |