diff --git a/src/controllers/cardImageController.js b/src/controllers/cardImageController.js index 64e929b..5e76af1 100644 --- a/src/controllers/cardImageController.js +++ b/src/controllers/cardImageController.js @@ -3,12 +3,18 @@ const axios = require('axios'); async function getCardImage(req, res) { const { cardId } = req.params; + const { imageId } = req.query; try { - const [rows] = await db.execute( - 'SELECT image_id, image_data, image_url FROM card_images WHERE card_id = ? LIMIT 1', - [cardId] - ); + const [rows] = imageId + ? await db.execute( + 'SELECT image_id, image_data, image_url FROM card_images WHERE card_id = ? AND image_id = ? LIMIT 1', + [cardId, imageId] + ) + : await db.execute( + 'SELECT image_id, image_data, image_url FROM card_images WHERE card_id = ? LIMIT 1', + [cardId] + ); if (rows.length === 0) { return res.status(404).json({ error: 'Card image not found' }); diff --git a/src/controllers/exportCardsController.js b/src/controllers/exportCardsController.js index 71dcf19..fb18fc6 100644 --- a/src/controllers/exportCardsController.js +++ b/src/controllers/exportCardsController.js @@ -41,8 +41,13 @@ async function exportCards(req, res) { cardIds ); + const [images] = await db.execute( + `SELECT card_id, image_id FROM card_images WHERE card_id IN (${placeholders}) ORDER BY image_id ASC`, + cardIds + ); + const cardMap = {}; - cards.forEach(card => { cardMap[card.id] = { ...card, printings: [] }; }); + cards.forEach(card => { cardMap[card.id] = { ...card, printings: [], image_ids: [] }; }); printings.forEach(p => { if (cardMap[p.card_id]) { cardMap[p.card_id].printings.push({ @@ -56,6 +61,9 @@ async function exportCards(req, res) { }); } }); + images.forEach(img => { + if (cardMap[img.card_id]) cardMap[img.card_id].image_ids.push(img.image_id); + }); res.json(Object.values(cardMap)); } catch (err) {