import { NextRequest, NextResponse } from "next/server"; import { getFeeds, addFeed, updateFeed, deleteFeed, checkLinkViaProxy } from "@/lib/rssapi"; export async function GET(request: NextRequest) { try { const { searchParams } = request.nextUrl; const health = searchParams.get("health"); if (health) { const result = await checkLinkViaProxy(health); return NextResponse.json(result); } const feeds = await getFeeds(); return NextResponse.json({ feeds }); } catch (error: unknown) { return NextResponse.json( { error: error instanceof Error ? error.message : "Unknown error" }, { status: 500 } ); } } export async function POST(request: NextRequest) { try { const body = await request.json(); const { url, feedTitle } = body; if (!url) { return NextResponse.json({ error: "URL is required" }, { status: 400 }); } await addFeed(url, feedTitle || ""); return NextResponse.json({ success: true }); } catch (error: unknown) { return NextResponse.json( { error: error instanceof Error ? error.message : "Unknown error" }, { status: 500 } ); } } export async function PUT(request: NextRequest) { try { const body = await request.json(); const { oldUrl, url: newUrl, feedTitle } = body; if (!oldUrl) { return NextResponse.json({ error: "oldUrl is required" }, { status: 400 }); } await updateFeed(oldUrl, newUrl || oldUrl, feedTitle || ""); return NextResponse.json({ success: true }); } catch (error: unknown) { return NextResponse.json( { error: error instanceof Error ? error.message : "Unknown error" }, { status: 500 } ); } } export async function DELETE(request: NextRequest) { try { const url = request.nextUrl.searchParams.get("url"); if (!url) { return NextResponse.json({ error: "URL is required" }, { status: 400 }); } await deleteFeed(url); return NextResponse.json({ success: true }); } catch (error: unknown) { return NextResponse.json( { error: error instanceof Error ? error.message : "Unknown error" }, { status: 500 } ); } }