[Developer] #424 support ORDS handler source editing
This commit is contained in:
@@ -2,21 +2,27 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cloudhandson.vpdbackoffice.mapper.OrdsMetadataMapper">
|
||||
<sql id="handlerColumns">
|
||||
h.id AS handler_id,
|
||||
s.pattern AS schema_name,
|
||||
s.parsing_schema,
|
||||
m.name AS module_name,
|
||||
m.uri_prefix AS base_path,
|
||||
t.uri_template AS template,
|
||||
h.method,
|
||||
h.source_type,
|
||||
DBMS_LOB.SUBSTR(h.source, 12000, 1) AS source,
|
||||
(
|
||||
SELECT LISTAGG(p.name || ' -> :' || p.bind_variable_name || ' (' || p.source_type || ')', CHR(10))
|
||||
WITHIN GROUP (ORDER BY p.name)
|
||||
FROM dba_ords_parameters p
|
||||
WHERE p.handler_id = h.id
|
||||
) AS parameters,
|
||||
CAST(NULL AS VARCHAR2(1)) AS package_source
|
||||
</sql>
|
||||
|
||||
<select id="findHandlers" resultType="com.cloudhandson.vpdbackoffice.domain.ords.OrdsHandlerView">
|
||||
SELECT s.pattern AS schema_name,
|
||||
m.name AS module_name,
|
||||
m.uri_prefix AS base_path,
|
||||
t.uri_template AS template,
|
||||
h.method,
|
||||
h.source_type,
|
||||
DBMS_LOB.SUBSTR(h.source, 12000, 1) AS source,
|
||||
(
|
||||
SELECT LISTAGG(p.name || ' -> :' || p.bind_variable_name || ' (' || p.source_type || ')', CHR(10))
|
||||
WITHIN GROUP (ORDER BY p.name)
|
||||
FROM dba_ords_parameters p
|
||||
WHERE p.handler_id = h.id
|
||||
) AS parameters,
|
||||
CAST(NULL AS VARCHAR2(1)) AS package_source
|
||||
SELECT <include refid="handlerColumns"/>
|
||||
FROM dba_ords_schemas s
|
||||
JOIN dba_ords_modules m ON m.schema_id = s.id
|
||||
JOIN dba_ords_templates t ON t.module_id = m.id
|
||||
@@ -25,6 +31,16 @@
|
||||
ORDER BY m.name, t.uri_template, h.method
|
||||
</select>
|
||||
|
||||
<select id="findHandler" resultType="com.cloudhandson.vpdbackoffice.domain.ords.OrdsHandlerView">
|
||||
SELECT <include refid="handlerColumns"/>
|
||||
FROM dba_ords_schemas s
|
||||
JOIN dba_ords_modules m ON m.schema_id = s.id
|
||||
JOIN dba_ords_templates t ON t.module_id = m.id
|
||||
JOIN dba_ords_handlers h ON h.template_id = t.id
|
||||
WHERE s.parsing_schema = 'CB_ORDS'
|
||||
AND h.id = #{handlerId,jdbcType=NUMERIC}
|
||||
</select>
|
||||
|
||||
<select id="findHandlerPackageSource" resultType="string">
|
||||
SELECT LISTAGG(text, '') WITHIN GROUP (ORDER BY line)
|
||||
FROM all_source
|
||||
|
||||
@@ -347,6 +347,32 @@ body {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.code-editor {
|
||||
background: #211f1d;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
color: #fbf9f7;
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
|
||||
font-size: .78rem;
|
||||
line-height: 1.45;
|
||||
min-height: 320px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.code-editor:focus {
|
||||
background: #211f1d;
|
||||
color: #fbf9f7;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
align-items: center;
|
||||
background: var(--rw-surface-muted);
|
||||
border-top: 1px solid var(--rw-border);
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: .55rem .75rem;
|
||||
}
|
||||
|
||||
.table-pre {
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
<p>Bearer Token을 DB 컨텍스트로 변환하는 ORDS Handler와 PL/SQL 흐름을 확인합니다.</p>
|
||||
</div>
|
||||
|
||||
<div class="alert alert-success" th:if="${message}" th:text="${message}"></div>
|
||||
<div class="alert alert-danger" th:if="${errorMessage}" th:text="${errorMessage}"></div>
|
||||
|
||||
<section class="content-band" th:each="handler : ${handlers}">
|
||||
<div class="section-heading">
|
||||
<h2 th:text="${handler.method() + ' ' + handler.fullPath()}">POST /ords/...</h2>
|
||||
@@ -16,6 +19,7 @@
|
||||
</div>
|
||||
<div class="meta-row">
|
||||
<span>Schema: <strong th:text="${handler.schemaName()}">CB_ORDS</strong></span>
|
||||
<span>Parsing Schema: <strong th:text="${handler.parsingSchema()}">CB_ORDS</strong></span>
|
||||
<span>Module: <strong th:text="${handler.moduleName()}">cb.agent.security</strong></span>
|
||||
<span>Template: <strong th:text="${handler.template()}">vpd/documents</strong></span>
|
||||
</div>
|
||||
@@ -26,7 +30,18 @@
|
||||
</section>
|
||||
<section class="probe-exchange">
|
||||
<h3>Handler Source</h3>
|
||||
<pre th:text="${handler.source()}"></pre>
|
||||
<form method="post" action="/ords-handlers/update">
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}">
|
||||
<input type="hidden" name="handlerId" th:value="${handler.handlerId()}">
|
||||
<textarea class="form-control code-editor" name="source" rows="16" spellcheck="false"
|
||||
th:text="${handler.source()}"></textarea>
|
||||
<div class="form-actions">
|
||||
<button class="btn btn-sm rw-btn-primary" type="submit"
|
||||
th:disabled="${!handler.plsqlEditable()}">
|
||||
저장
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
<section class="probe-exchange span-2">
|
||||
<h3>Bearer Token -> User Context Package</h3>
|
||||
|
||||
Reference in New Issue
Block a user