Skip to content
Snippets Groups Projects
movies.service.ts 1.36 KiB
Newer Older
import { Injectable } from '@nestjs/common';
import { CreateMovieDto } from './dto/create-movie.dto';
import { UpdateMovieDto } from './dto/update-movie.dto';
import { PrismaService } from '../../prisma.service';
import { CreateCategoryDto } from '../categories/dto/create-category.dto';

@Injectable()
export class MoviesService {
  constructor(private prisma: PrismaService) {}

  create(createMovieDto: CreateMovieDto) {
    return this.prisma.movie.create({
      data: createMovieDto,
    });
  }

  findAll() {
    return this.prisma.movie.findMany();
  }

  findOne(id: string) {
    return this.prisma.movie.findUnique({
      where: {
        id,
      },
    });
  }

  addCategory(movieId: string, categoryName: string) {
    this.prisma.category.update({
      data: {
        movies: {
          connect: {
            id: movieId,
          },
        },
      },
      where: {
        name: categoryName,
      },
    });

    return this.prisma.movie.update({
      data: {
        categories: {
          connect: {
            name: categoryName,
          },
        },
      },
      where: {
        id: movieId,
      },
      include: {
        categories: true,
      },
    });
  }

  update(id: string, updateMovieDto: UpdateMovieDto) {
    return `This action updates a #${id} movie`;
  }

  remove(id: string) {
    return `This action removes a #${id} movie`;
  }
}