Newer
Older
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Query, UseGuards,
import { ApiOperation, 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';

Lukáš Kratochvíl
committed
import { MoviesQuery } from './dto/movies-query';
import { AuthorizationGuard } from '../../authorization/authorization.guard';
@ApiTags('movies')
@Controller('movies')
export class MoviesController {
constructor(private readonly moviesService: MoviesService) {}
@UseGuards(AuthorizationGuard)

Lukáš Kratochvíl
committed
async create(@Body() createMovieDto: CreateMovieDto): Promise<MovieEntity> {
return await this.moviesService.create(createMovieDto);
}
@Get()

Lukáš Kratochvíl
committed
async findAll(@Query() query: MoviesQuery): Promise<MovieEntity[]> {
return await this.moviesService.findAll(query);

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

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);
}
@UseGuards(AuthorizationGuard)
async update(
@Param('id') id: string,
@Body() updateMovieDto: UpdateMovieDto,
): Promise<MovieEntity> {
return await this.moviesService.update(id, updateMovieDto);
}
@UseGuards(AuthorizationGuard)

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