Newer
Older
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Query,
ParseIntPipe,
import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import { MoviesService } from './movies.service';
import { CreateMovieDto } from './dto/create-movie.dto';
import { UpdateMovieDto } from './dto/update-movie.dto';

Lukáš Kratochvíl
committed
import { MovieEntity } from './entities/movie.entity';
@ApiTags('movies')
@Controller('movies')
export class MoviesController {
constructor(private readonly moviesService: MoviesService) {}
@Post()

Lukáš Kratochvíl
committed
async create(@Body() createMovieDto: CreateMovieDto): Promise<MovieEntity> {
return await this.moviesService.create(createMovieDto);
}
@Get()
@ApiQuery({
name: 'mostRecentCnt',
required: false,
})
async findAll(@Query('mostRecentCnt', ParseIntPipe) mostRecentCnt?: number): Promise<MovieEntity[]> {
return await this.moviesService.findAll(mostRecentCnt);

Lukáš Kratochvíl
committed
async findOne(@Param('id') id: string): Promise<MovieEntity> {
return await this.moviesService.findOne(id);
}

Lukáš Kratochvíl
committed
@ApiOperation({ summary: 'Add category to a movie' })
async addCategory(
@Param('id') id: string,
@Param('categoryName') categoryName: string,
): Promise<MovieEntity> {
return await this.moviesService.addCategory(id, categoryName);
}
async update(
@Param('id') id: string,
@Body() updateMovieDto: UpdateMovieDto,
): Promise<MovieEntity> {
return await this.moviesService.update(id, updateMovieDto);
}
@Delete(':id')

Lukáš Kratochvíl
committed
async remove(@Param('id') id: string): Promise<MovieEntity> {
return await this.moviesService.remove(id);
}
}