릴리스: v1.4.24 topic/template 응답 키 축소

This commit is contained in:
2026-04-02 20:40:12 +09:00
parent 6a8d4ddabd
commit 257d50f9c5
10 changed files with 29 additions and 15 deletions

View File

@@ -132,8 +132,11 @@ export function useAdminGameManager({
try {
isGameLoading.value = true
const data = await api.getTopic(selectedTemplateId.value)
const loadedTemplate = data.template || data.topic || null
selectedTemplate.value = {
...data,
game: loadedTemplate,
template: loadedTemplate,
items: (data.items || []).map((item) => ({
...item,
draftLabel: item.label,
@@ -169,7 +172,7 @@ export function useAdminGameManager({
if (!res.ok) throw new Error('failed')
const data = await res.json()
const createdTemplate = data.template || data.game || {}
const createdTemplate = data.template || {}
if (activeTemplateRequest.value?.type === 'create' && activeTemplateRequest.value?.id) {
const linkData = await api.linkAdminTemplateRequestGame(activeTemplateRequest.value.id, {
gameId: createdTemplate.id,

View File

@@ -788,7 +788,7 @@ async function selectAdminTemplate(templateId) {
async function refreshTemplates() {
try {
const data = await api.listTopics()
templates.value = data.games || []
templates.value = data.topics || []
featuredTemplateIds.value = templates.value
.filter((template) => template.displayRank != null)
.sort((a, b) => a.displayRank - b.displayRank)
@@ -1173,7 +1173,7 @@ async function saveTemplateVisibility() {
const data = await api.updateAdminTemplate(selectedTemplate.value.game.id, {
isPublic: !!selectedTemplate.value.game.isPublic,
})
const nextTemplate = data.template || data.game || {}
const nextTemplate = data.template || {}
selectedTemplate.value = {
...selectedTemplate.value,
game: {
@@ -1616,7 +1616,7 @@ async function confirmTierListImport() {
itemIds,
})
await refreshTemplates()
success.value = `"${data.game?.name || nextGameName}" 템플릿을 생성했어요.`
success.value = `"${data.template?.name || nextGameName}" 템플릿을 생성했어요.`
}
closeTierListImportModal()

View File

@@ -57,7 +57,7 @@ async function loadTierLists() {
api.getTopic(topicId.value),
api.searchPublicTierListsByTopic(topicId.value, query.value),
])
topicName.value = topicRes.topic?.name || topicRes.game?.name || ''
topicName.value = topicRes.topic?.name || ''
brokenThumbnailIds.value = {}
tierLists.value = listRes.tierLists || []
} catch (e) {

View File

@@ -37,7 +37,7 @@ const templates = computed(() => {
async function loadTemplates() {
try {
const data = await api.listTopics()
templateRecords.value = data.topics || data.games || []
templateRecords.value = data.topics || []
} catch (e) {
error.value = '백엔드에 연결할 수 없어요. backend 서버가 실행 중인지 확인해주세요.'
}
@@ -61,7 +61,7 @@ async function toggleFavorite(template, event) {
try {
loadingFavoriteId.value = template.id
const res = template.isFavorited ? await api.unfavoriteTopic(template.id) : await api.favoriteTopic(template.id)
templateRecords.value = templateRecords.value.map((entry) => (entry.id === template.id ? { ...entry, ...(res.topic || res.game || {}) } : entry))
templateRecords.value = templateRecords.value.map((entry) => (entry.id === template.id ? { ...entry, ...(res.topic || {}) } : entry))
} catch (e) {
error.value = '즐겨찾기 변경에 실패했어요.'
} finally {

View File

@@ -899,7 +899,7 @@ onMounted(() => {
try {
const topicRes = await api.getTopic(templateId.value)
templateName.value = topicRes.topic?.name || topicRes.game?.name || templateId.value
templateName.value = topicRes.topic?.name || templateId.value
const base = (topicRes.items || []).map((img) => ({
id: img.id,
src: img.src,