import { NextResponse } from "next/server" import { createSupabaseAdminClient } from "@/lib/supabase/admin" import { authenticateApiRequest } from "@/lib/api-auth" export async function GET(request: Request) { const authResult = await authenticateApiRequest(request) if (!authResult.authenticated) { return NextResponse.json( { error: authResult.error }, { status: authResult.status } ) } const adminClient = createSupabaseAdminClient() const { data, error } = await adminClient .from("subscriptions") .select( "id, custom_title, folder_id, feeds!inner(id, url, title, feed_type, site_url)" ) .eq("user_id", authResult.user.userIdentifier) if (error) { return NextResponse.json( { error: "failed to load feeds" }, { status: 500 } ) } interface FeedRow { id: string custom_title: string | null folder_id: string | null feeds: { id: string url: string title: string | null feed_type: string | null site_url: string | null } } return NextResponse.json({ feeds: (data as unknown as FeedRow[]).map((row) => ({ subscriptionIdentifier: row.id, feedIdentifier: row.feeds.id, feedUrl: row.feeds.url, feedTitle: row.feeds.title, customTitle: row.custom_title, feedType: row.feeds.feed_type, siteUrl: row.feeds.site_url, folderIdentifier: row.folder_id, })), }) }