feat(discovery): GET /api/discover/search interactive seed search
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { searchArtists } from "@/lib/musicbrainz";
|
||||
import { similarArtists } from "@/lib/listenbrainz";
|
||||
|
||||
export async function GET(request: Request) {
|
||||
const artist = new URL(request.url).searchParams.get("artist");
|
||||
if (!artist || !artist.trim()) {
|
||||
return Response.json({ error: "artist is required" }, { status: 400 });
|
||||
}
|
||||
let hits;
|
||||
try {
|
||||
hits = await searchArtists(artist.trim());
|
||||
} catch {
|
||||
return Response.json({ error: "MusicBrainz unavailable" }, { status: 502 });
|
||||
}
|
||||
if (hits.length === 0) return Response.json({ seed: null, similar: [] });
|
||||
const seed = hits[0];
|
||||
let similar;
|
||||
try {
|
||||
similar = await similarArtists(seed.mbid);
|
||||
} catch {
|
||||
return Response.json({ error: "ListenBrainz unavailable" }, { status: 502 });
|
||||
}
|
||||
return Response.json({ seed, similar });
|
||||
}
|
||||
Reference in New Issue
Block a user