Finalize scoring system, release year integration, and fix song deletion
This commit is contained in:
@@ -29,6 +29,7 @@ export async function GET() {
|
||||
filename: song.filename,
|
||||
createdAt: song.createdAt,
|
||||
coverImage: song.coverImage,
|
||||
releaseYear: song.releaseYear,
|
||||
activations: song.puzzles.length,
|
||||
puzzles: song.puzzles,
|
||||
genres: song.genres,
|
||||
@@ -179,12 +180,25 @@ export async function POST(request: Request) {
|
||||
console.error('Failed to extract cover image:', e);
|
||||
}
|
||||
|
||||
// Fetch release year from MusicBrainz
|
||||
let releaseYear = null;
|
||||
try {
|
||||
const { getReleaseYear } = await import('@/lib/musicbrainz');
|
||||
releaseYear = await getReleaseYear(artist, title);
|
||||
if (releaseYear) {
|
||||
console.log(`Fetched release year ${releaseYear} for "${title}" by "${artist}"`);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Failed to fetch release year from MusicBrainz:', e);
|
||||
}
|
||||
|
||||
const song = await prisma.song.create({
|
||||
data: {
|
||||
title,
|
||||
artist,
|
||||
filename,
|
||||
coverImage,
|
||||
releaseYear,
|
||||
},
|
||||
include: { genres: true, specials: true }
|
||||
});
|
||||
@@ -201,7 +215,7 @@ export async function POST(request: Request) {
|
||||
|
||||
export async function PUT(request: Request) {
|
||||
try {
|
||||
const { id, title, artist, genreIds, specialIds } = await request.json();
|
||||
const { id, title, artist, releaseYear, genreIds, specialIds } = await request.json();
|
||||
|
||||
if (!id || !title || !artist) {
|
||||
return NextResponse.json({ error: 'Missing fields' }, { status: 400 });
|
||||
@@ -209,6 +223,11 @@ export async function PUT(request: Request) {
|
||||
|
||||
const data: any = { title, artist };
|
||||
|
||||
// Update releaseYear if provided (can be null to clear it)
|
||||
if (releaseYear !== undefined) {
|
||||
data.releaseYear = releaseYear;
|
||||
}
|
||||
|
||||
if (genreIds) {
|
||||
data.genres = {
|
||||
set: genreIds.map((gId: number) => ({ id: gId }))
|
||||
|
||||
Reference in New Issue
Block a user