Update와 Read중에 모든 게시물 가져오는 api 만들기
service 코드
import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { BoardStatus } from './board-status.enum';
import { Board } from './board.entity';
import { BoardRepository } from './board.repository';
import { CreateBoardDto } from './dto/create-board.dto';
@Injectable()
export class BoardsService {
constructor(
@InjectRepository(Board)
private boardRepository: BoardRepository,
) {}
// 중략
async getAllBoards(): Promise<Board[]> {
return this.boardRepository.find();
}
async updateBoardStatus(id: number, status: BoardStatus): Promise<Board> {
const board = await this.getBoardById(id);
board.status = status;
await this.boardRepository.save(board);
return board;
}
}
유의해야 할 점은 getAllBoards의 경우 리스트 안에 객체가 담겨있는 형태이므로 타입을 지정할 때 Board[] 로 지정을 해줘야 한다.
updateBoardStatus의 경우 인자로 바꾸기 위한 id와 status를 가져오는데 status의 타입은 앞서 작성한 status의 enum을 담아주게 된다.
controller 코드
import {
Body,
Controller,
Delete,
Get,
Param,
ParseIntPipe,
Post,
UsePipes,
ValidationPipe,
} from '@nestjs/common';
import { Patch } from '@nestjs/common/decorators';
import { BoardStatus } from './board-status.enum';
import { Board } from './board.entity';
import { BoardsService } from './boards.service';
import { CreateBoardDto } from './dto/create-board.dto';
import { BoardStatusValidationPipe } from './pipes/board-status-validation.pipe';
@Controller('boards')
export class BoardsController {
constructor(private boardsService: BoardsService) {}
// 중략 ..
@Get()
getAllBoard(): Promise<Board[]> {
return this.boardsService.getAllBoards();
}
@Patch('/:id/status')
updateBoardStatus(
@Param('id', ParseIntPipe) id: number,
@Body('status', BoardStatusValidationPipe) status: BoardStatus,
) {
return this.boardsService.updateBoardStatus(id, status);
}
}
'Nest.js' 카테고리의 다른 글
[Nest.js] 회원가입과 로그인 구현 2 (0) | 2023.01.27 |
---|---|
[Nest.js] 회원가입과 로그인 구현 1 (0) | 2023.01.27 |
[Nest.js] Nest.js + PostgreSQL + typeORM CRUD 구현하기 2 (0) | 2023.01.26 |
[Nest.js] Nest.js + PostgreSQL + typeORM CRUD 구현하기 1 (1) | 2023.01.26 |
[Nest.js] Providers란? (0) | 2023.01.25 |