fix(scaffold): 기존 UseCase에 단일 Tool 추가 시 새 파일(UseCase)이 생성되는 버그 수정
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 6m10s

This commit is contained in:
jade
2026-08-14 09:51:08 +09:00
parent 09cc22e4a4
commit 975411598d

View File

@@ -1660,26 +1660,43 @@
} }
document.getElementById('toolForm').addEventListener('submit', function(e) { document.getElementById('toolForm').addEventListener('submit', function(e) {
if (!groupedTools.length) return; const useCaseName = document.getElementById('toolGroupUseCaseName').value.trim();
if (useCaseName) {
e.preventDefault(); e.preventDefault();
e.stopImmediatePropagation(); e.stopImmediatePropagation();
if (!/^[A-Z][A-Za-z0-9]*$/.test(useCaseName)) {
alert('UseCase 이름은 PascalCase로 입력해주세요. 예: Customer');
return;
}
try { try {
const useCaseName = document.getElementById('toolGroupUseCaseName').value.trim();
if (!/^[A-Z][A-Za-z0-9]*$/.test(useCaseName)) throw new Error('UseCase 이름은 PascalCase로 입력해주세요. 예: Customer');
const current = currentToolDefinition(); const current = currentToolDefinition();
const tools = groupedTools.some(item => item.methodName === current.methodName) ? groupedTools : [...groupedTools, current]; const tools = groupedTools.some(item => item.methodName === current.methodName) ? groupedTools : [...groupedTools, current];
const data = Object.fromEntries(new FormData(this).entries()); const data = Object.fromEntries(new FormData(this).entries());
const btn = this.querySelector('button[type="submit"]');
const originalText = btn.innerHTML;
btn.innerHTML = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> 처리중...';
btn.disabled = true;
fetch('/api/v1/scaffold/tool-group', { fetch('/api/v1/scaffold/tool-group', {
method: 'POST', headers: {'Content-Type': 'application/json'}, method: 'POST', headers: {'Content-Type': 'application/json'},
body: JSON.stringify({useCaseName, moduleName: data.moduleName, author: data.author, date: data.date, tools}) body: JSON.stringify({useCaseName, moduleName: data.moduleName, author: data.author, date: data.date, tools})
}).then(response => response.text()).then(result => { }).then(response => response.text()).then(result => {
const resultBox = document.getElementById('resultBox'); const resultBox = document.getElementById('resultBox');
resultBox.style.display = 'block'; resultBox.className = result.startsWith('Error:') ? 'error' : 'success'; resultBox.style.display = 'block'; resultBox.className = result.startsWith('Error:') ? 'error' : 'success';
resultBox.textContent = result; resultBox.textContent = result + (result.startsWith('Error:') ? '' : "\n\n> Note: Please sync Gradle in your IDE to reflect source code generation.");
}).catch(error => {
const resultBox = document.getElementById('resultBox');
resultBox.style.display = 'block'; resultBox.className = 'error';
resultBox.textContent = "Network error: " + error;
}).finally(() => {
btn.innerHTML = originalText;
btn.disabled = false;
}); });
} catch (error) { } catch (error) {
alert(error.message); alert(error.message);
} }
}
}); });
handleFormSubmit('toolForm', '/api/v1/scaffold/tool'); handleFormSubmit('toolForm', '/api/v1/scaffold/tool');