refactor(character): 캐릭터 등록/수정 시 변경된 필드만 전송하도록 최적화
This commit is contained in:
@@ -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: {
|
||||
|
Reference in New Issue
Block a user