44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { json } from '@sveltejs/kit';
|
|
import type { RequestHandler } from './$types';
|
|
import { uploadRecipeWithIngredientsDTO, uploadRecipeImage } from '$lib/server/tandoor';
|
|
|
|
export const POST: RequestHandler = async ({ request }) => {
|
|
const { recipe } = await request.json();
|
|
|
|
if (!recipe) {
|
|
return json({ error: 'No recipe provided' }, { status: 400 });
|
|
}
|
|
|
|
try {
|
|
const result = await uploadRecipeWithIngredientsDTO(recipe);
|
|
|
|
if (!result.success) {
|
|
return json({ error: result.error || 'Failed to upload recipe' }, { status: 500 });
|
|
}
|
|
|
|
// Upload image if available
|
|
let imageStatus = null;
|
|
if (result.recipeId && result.imageUrl) {
|
|
imageStatus = await uploadRecipeImage(result.recipeId, result.imageUrl);
|
|
if (!imageStatus.success) {
|
|
console.warn('Image upload failed, but recipe created:', imageStatus.error);
|
|
}
|
|
}
|
|
|
|
return json({
|
|
success: true,
|
|
message: 'Recipe successfully imported to Tandoor',
|
|
recipeId: result.recipeId,
|
|
imageUpload: imageStatus?.success ? 'successful' : 'failed'
|
|
});
|
|
} catch (error) {
|
|
console.error('Tandoor upload error:', error);
|
|
return json(
|
|
{
|
|
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
},
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
};
|