Add image_ids to card export, support imageId query param for artwork fetching
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -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' });
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user