more routes (decorators, parameters)

emily,h·2022년 7월 13일
0
import {
  Body,
  Controller,
  Delete,
  Get,
  Param,
  Patch,
  Post,
  Put,
  Query,
} from '@nestjs/common';

@Controller('movies')
export class MoviesController {
  @Get()
  getAll() {
    return `This will return all movies`;
  }

  // localhost:3000/movies/search?year=2000
  @Get('search')
  search(@Query('year') searchingYear: string) {
    return `We are searching for a movie made after: ${searchingYear}`;
  }

  /**
   * 필요한 parameter는 작성하여 요청한다.
   * getOne에서 요청하는 방법은 parameter를 요청하는 것
   * @Param 사용시 url에 있는 id parameter를 인 것을 가리킴
   */
  @Get('/:id')
  getOne(@Param('id') movieId: string) {
    return `This will return one movie with the id ${movieId}`;
  }

  /**
   * @Body 에 클라에서 보낸 movie 만들 data(movieData)를 받아옴
   */
  @Post()
  create(@Body() movieData) {
    // console.log(movieData);
    return movieData;
  }

  @Delete('/:id')
  remove(@Param('id') movieId: string) {
    return `This will delete a movie with the id: ${movieId}`;
  }

  @Patch('/:id')
  parch(@Param('id') movieId: string, @Body() updateData) {
    // return `This will patch a movie with the id: ${movieId}`;
    return {
      updatedMovie: movieId,
      ...updateData,
    };
  }

  // search 부분이 get(':/id')보다 밑에 있으면 search를 id로 판단한다.
  // get id 위로 옮겨준다.
  // @Get('search')
  // search() {
  //   return `We are searching for a movie with a title`;
  // }
}

0개의 댓글