feat: make pantry items and meal plan entries user-scoped; update related services and controllers
This commit is contained in:
@@ -6,8 +6,9 @@ import { CreatePantryItemDto } from './dto/create-pantry-item.dto';
|
||||
export class PantryService {
|
||||
constructor(private readonly prisma: PrismaService) {}
|
||||
|
||||
findAll() {
|
||||
findAll(userId: number) {
|
||||
return this.prisma.pantryItem.findMany({
|
||||
where: { userId },
|
||||
include: {
|
||||
product: true,
|
||||
},
|
||||
@@ -17,9 +18,14 @@ export class PantryService {
|
||||
});
|
||||
}
|
||||
|
||||
async create(data: CreatePantryItemDto) {
|
||||
async create(userId: number, data: CreatePantryItemDto) {
|
||||
const existing = await this.prisma.pantryItem.findUnique({
|
||||
where: { productId: data.productId },
|
||||
where: {
|
||||
userId_productId: {
|
||||
userId,
|
||||
productId: data.productId,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (existing) {
|
||||
@@ -27,13 +33,15 @@ export class PantryService {
|
||||
}
|
||||
|
||||
return this.prisma.pantryItem.create({
|
||||
data: { productId: data.productId },
|
||||
data: { userId, productId: data.productId },
|
||||
include: { product: true },
|
||||
});
|
||||
}
|
||||
|
||||
async remove(id: number) {
|
||||
const item = await this.prisma.pantryItem.findUnique({ where: { id } });
|
||||
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`);
|
||||
|
||||
Reference in New Issue
Block a user