refactor(character): 캐릭터 등록/수정 시 변경된 필드만 전송하도록 최적화

This commit is contained in:
Yu Sung
2025-08-07 18:53:07 +09:00
parent d1f700842f
commit 6bd3a62134
2 changed files with 109 additions and 29 deletions

View File

@@ -57,36 +57,15 @@ async function createCharacter(characterData) {
}
// 캐릭터 수정
async function updateCharacter(characterData) {
async function updateCharacter(characterData, image = null) {
const formData = new FormData()
// 이미지만 FormData에 추가
if (characterData.image) formData.append('image', characterData.image)
// 이미지가 있는 경우에만 FormData에 추가
if (image) formData.append('image', image)
// 나머지 데이터 JSON 문자열로 변환하여 request 필드에 추가
const requestData = {
id: characterData.id,
name: characterData.name,
systemPrompt: characterData.systemPrompt,
description: characterData.description,
age: characterData.age,
gender: characterData.gender,
mbti: characterData.mbti,
speechPattern: characterData.speechPattern,
speechStyle: characterData.conversationStyle,
appearance: characterData.appearance,
tags: characterData.tags || [],
hobbies: characterData.hobbies || [],
values: characterData.values || [],
goals: characterData.goals || [],
relationships: characterData.relationships || [],
personalities: characterData.personalities || [],
backgrounds: characterData.backgrounds || [],
memories: characterData.memories || [],
isActive: characterData.isActive
}
formData.append('request', JSON.stringify(requestData))
// 변경된 데이터 JSON 문자열로 변환하여 request 필드에 추가
// characterData는 이미 변경된 필드만 포함하고 있음
formData.append('request', JSON.stringify(characterData))
return Vue.axios.put(`/admin/chat/character/update`, formData, {
headers: {