diff --git a/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp b/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp index 38aaca6..922b23b 100644 --- a/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp +++ b/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp @@ -285,6 +285,56 @@ } }); + $("#btn_sync_portal").click(function() { + var clientId = $('input[name=clientId]').val(); + var clientName = $('input[name=clientName]').val(); + + if (!clientId) { + alert("Client ID가 없습니다."); + return; + } + + if (!confirm("'" + clientName + "'의 개발자포탈 정보를 반영하시겠습니까?\n\n" + + "APIGW 인증 정보를 포탈 DB에 반영합니다. (없으면 생성, 있으면 업데이트)")) { + return; + } + + $.ajax({ + type: "POST", + url: url, + dataType: "json", + data: { + cmd: 'SYNC_PORTAL', + clientId: clientId + }, + success: function(response) { + if (response.success) { + var msg = "포탈 정보 반영 완료"; + + if (response.action === 'INSERTED') { + msg = "포탈 정보를 새로 생성했습니다."; + } else if (response.action === 'UPDATED') { + msg = "포탈 정보를 업데이트했습니다."; + } else if (response.action === 'SKIPPED_NO_ORG') { + msg = "반영을 건너뜁니다.\n법인(orgId)이 설정되지 않은 클라이언트입니다."; + } else if (response.action === 'SKIPPED_INVALID_API') { + msg = "반영을 건너뜁니다.\n존재하지 않는 API가 포함되어 있습니다.\n\n"; + if (response.invalidApis && response.invalidApis.length > 0) { + msg += "누락된 API: " + response.invalidApis.join(", "); + } + } + + alert(msg); + } else { + alert("반영 실패\n\n" + response.message); + } + }, + error: function(xhr) { + alert("반영 중 오류가 발생했습니다."); + } + }); + }); + $("#btn_popup_api").click(function () { const args = {}; const url2 = api_url_view += "?cmd=POPUP"; @@ -417,6 +467,8 @@
+