Files
recipe-app/backend/src/pantry/pantry.service.ts
T

53 lines
1.3 KiB
TypeScript

import { Injectable, ConflictException, NotFoundException } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
import { CreatePantryItemDto } from './dto/create-pantry-item.dto';
@Injectable()
export class PantryService {
constructor(private readonly prisma: PrismaService) {}
findAll(userId: number) {
return this.prisma.pantryItem.findMany({
where: { userId },
include: {
product: true,
},
orderBy: {
product: { name: 'asc' },
},
});
}
async create(userId: number, data: CreatePantryItemDto) {
const existing = await this.prisma.pantryItem.findUnique({
where: {
userId_productId: {
userId,
productId: data.productId,
},
},
});
if (existing) {
throw new ConflictException('Produkten finns redan i baslagret');
}
return this.prisma.pantryItem.create({
data: { userId, productId: data.productId },
include: { product: true },
});
}
async remove(userId: number, id: number) {
const item = await this.prisma.pantryItem.findFirst({
where: { id, userId },
});
if (!item) {
throw new NotFoundException(`PantryItem med id ${id} hittades inte`);
}
return this.prisma.pantryItem.delete({ where: { id } });
}
}