maplestory/backend/routes/symbol.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

import { Router } from 'express';
import { Symbol, SymbolLevel } from '../models/index.js';
import { getPublicUrl } from '../lib/s3.js';
const router = Router();
router.get('/', async (_req, res) => {
try {
const rows = await Symbol.findAll({
order: [['sort_order', 'ASC'], ['id', 'ASC']],
include: [{ model: SymbolLevel, as: 'levels' }],
});
res.json(rows.map((s) => {
const j = s.toJSON();
return {
id: j.id,
type: j.type,
region: j.region,
image_url: j.image ? getPublicUrl(j.image) : null,
max_level: j.max_level,
daily_default: j.daily_default,
weekly_default: j.weekly_default,
sort_order: j.sort_order,
levels: (j.levels || [])
.sort((a, b) => a.level - b.level)
.map((l) => ({
level: l.level,
required_count: l.required_count,
meso_cost: Number(l.meso_cost),
})),
};
}));
} catch (err) {
console.error('심볼 목록 조회 오류:', err.message);
res.status(500).json({ error: '심볼 목록 조회 실패' });
}
});
export default router;