feat(RECIPE-0009): complete iteration 0 — deduplication, notifications, UI improvements

This commit is contained in:
Giancarmine Salucci
2026-02-18 06:00:48 +01:00
parent 40e3fb0c1b
commit dfca35bde2
12 changed files with 864 additions and 395 deletions

View File

@@ -50,15 +50,35 @@ export const POST: RequestHandler = async ({ request }) => {
throw new ValidationError(validation.error || 'Invalid Instagram URL');
}
// Enqueue the URL
// Check for duplicate before enqueueing
const existingItem = queueManager.findByUrl(url);
if (existingItem) {
// Return info response for duplicate
return json({
duplicate: true,
message: 'This recipe is already in the queue',
item: {
id: existingItem.id,
url: existingItem.url,
status: existingItem.status,
enqueuedAt: existingItem.enqueuedAt
}
}, { status: 200 }); // 200 OK, not an error
}
// Enqueue new URL
const queueItem = queueManager.enqueue(url);
// Return minimal response (full details available at GET /api/queue/{id})
// Return success response
return json({
id: queueItem.id,
url: queueItem.url,
status: queueItem.status,
enqueuedAt: queueItem.enqueuedAt
duplicate: false,
item: {
id: queueItem.id,
url: queueItem.url,
status: queueItem.status,
enqueuedAt: queueItem.enqueuedAt
}
});
} catch (error) {
return handleApiError(error);