40 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-05-26 02:14:59 -04:00
import { NextResponse } from "next/server";
import { createClient } from "@/utils/supabase/server";
2024-05-26 19:49:20 -04:00
export async function POST(request: Request) {
2024-05-26 02:14:59 -04:00
const supabase = createClient();
2024-05-26 19:49:20 -04:00
const url = new URL(request.url);
const search = url.searchParams.get("search");
const data = await request.json();
const tags = data.tags;
if(tags.length === 0){
let { data: galleries, error } = await supabase
.from('galleries')
.select('*')
.ilike('name', `%${search}%`)
.ilike('description', `%${search}%`);
return NextResponse.json(galleries);
}
else{
// Rest of the code...
2024-05-26 02:14:59 -04:00
let { data: galleries, error } = await supabase
2024-05-26 19:49:20 -04:00
.from('galleries')
.select('*')
.contains('tags', tags)
.ilike('name', `%${search}%`)
.ilike('description', `%${search}%`)
.order('created_at', { ascending: false });
return NextResponse.json(galleries);
return NextResponse.json(galleries);
}
2024-05-26 02:14:59 -04:00
}
2024-05-26 19:49:20 -04:00
// const tagsResponse = await fetch(`/api/galleries/tags?search=${search}`);
// const tagsData = await tagsResponse.json();
// const galleriesWithTagData = galleriesData.map((gallery: any) => {
// const tags = tagsData.filter((tag: any) => gallery.tags.includes(tag.id));
// return { ...gallery, tags };
// });