feat(import): enhance image URL extraction and logging during recipe import
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
import { Injectable, Logger, NotFoundException } from '@nestjs/common';
|
||||
import { Prisma } from '@prisma/client';
|
||||
import * as fs from 'node:fs/promises';
|
||||
import * as path from 'node:path';
|
||||
@@ -27,6 +27,8 @@ interface ParsedRecipe {
|
||||
|
||||
@Injectable()
|
||||
export class RecipesService {
|
||||
private readonly logger = new Logger(RecipesService.name);
|
||||
|
||||
constructor(private readonly prisma: PrismaService) {}
|
||||
|
||||
async getInventoryPreview(id: number) {
|
||||
@@ -301,17 +303,25 @@ export class RecipesService {
|
||||
}
|
||||
|
||||
async create(createRecipeDto: CreateRecipeDto, userId: number) {
|
||||
this.logger.log(
|
||||
`[create] Incoming imageUrl from client: ${createRecipeDto.imageUrl ?? 'null'}`,
|
||||
);
|
||||
|
||||
// Om imageUrl är en extern URL — ladda ner och optimera
|
||||
let imageUrl: string | null = createRecipeDto.imageUrl || null;
|
||||
if (imageUrl && imageUrl.startsWith('http')) {
|
||||
const externalImageUrl = imageUrl;
|
||||
try {
|
||||
imageUrl = await downloadAndOptimizeImage(imageUrl, IMAGE_DEST_DIR);
|
||||
} catch (err) {
|
||||
console.warn('[RecipesService] Kunde inte ladda ner receptbild:', err);
|
||||
imageUrl = null;
|
||||
// Behåll extern URL som fallback så bild fortfarande visas.
|
||||
imageUrl = externalImageUrl;
|
||||
}
|
||||
}
|
||||
|
||||
this.logger.log(`[create] Final imageUrl persisted to DB: ${imageUrl ?? 'null'}`);
|
||||
|
||||
const recipe = await this.prisma.recipe.create({
|
||||
data: {
|
||||
name: createRecipeDto.name,
|
||||
|
||||
Reference in New Issue
Block a user