Files
beer-inventory/app/models/drinks.server.ts
T

29 lines
949 B
TypeScript

import { enhance } from "@zenstackhq/runtime";
import { db } from "~/utils/db.server";
import { DrinkType, Manufacturer } from "@prisma/client";
export async function findIdFromSlug(slug:string | undefined) : Promise<number | undefined> {
if(slug){
const drink = await db.drink.findUnique({where: {slug: slug}, select: {id: true}});
return drink?.id;
}
return undefined;
}
export async function findManufacturersFromSearch(searchParams: URLSearchParams) : Promise<Manufacturer[]> {
const dbe = enhance(db);
var result : Manufacturer[] = [];
if(searchParams.has("drink")){
result = result.concat(await dbe.manufacturer.findMany({
where: {drinks: { some: { type: { in: searchParams.getAll("drink").map((str) => {return DrinkType[str as keyof typeof DrinkType]})}}}}
}));
}
else {
result = result.concat(await dbe.manufacturer.findMany());
}
return result;
}