외부 연결 목록에 회사명 표시 기능 추가

This commit is contained in:
dohyeons
2025-12-02 17:36:28 +09:00
parent 436d604bb3
commit faacd5402c
4 changed files with 36 additions and 23 deletions

View File

@@ -31,15 +31,17 @@ export class ExternalRestApiConnectionService {
try {
let query = `
SELECT
id, connection_name, description, base_url, endpoint_path, default_headers,
default_method,
e.id, e.connection_name, e.description, e.base_url, e.endpoint_path, e.default_headers,
e.default_method,
-- DB 스키마의 컬럼명은 default_request_body 기준이고
-- 코드에서는 default_body 필드로 사용하기 위해 alias 처리
default_request_body AS default_body,
auth_type, auth_config, timeout, retry_count, retry_delay,
company_code, is_active, created_date, created_by,
updated_date, updated_by, last_test_date, last_test_result, last_test_message
FROM external_rest_api_connections
e.default_request_body AS default_body,
e.auth_type, e.auth_config, e.timeout, e.retry_count, e.retry_delay,
e.company_code, e.is_active, e.created_date, e.created_by,
e.updated_date, e.updated_by, e.last_test_date, e.last_test_result, e.last_test_message,
COALESCE(c.company_name, CASE WHEN e.company_code = '*' THEN '전체' ELSE e.company_code END) AS company_name
FROM external_rest_api_connections e
LEFT JOIN company_mng c ON e.company_code = c.company_code
WHERE 1=1
`;
@@ -48,7 +50,7 @@ export class ExternalRestApiConnectionService {
// 회사별 필터링 (최고 관리자가 아닌 경우 필수)
if (userCompanyCode && userCompanyCode !== "*") {
query += ` AND company_code = $${paramIndex}`;
query += ` AND e.company_code = $${paramIndex}`;
params.push(userCompanyCode);
paramIndex++;
logger.info(`회사별 REST API 연결 필터링: ${userCompanyCode}`);
@@ -56,14 +58,14 @@ export class ExternalRestApiConnectionService {
logger.info(`최고 관리자: 모든 REST API 연결 조회`);
// 필터가 있으면 적용
if (filter.company_code) {
query += ` AND company_code = $${paramIndex}`;
query += ` AND e.company_code = $${paramIndex}`;
params.push(filter.company_code);
paramIndex++;
}
} else {
// userCompanyCode가 없는 경우 (하위 호환성)
if (filter.company_code) {
query += ` AND company_code = $${paramIndex}`;
query += ` AND e.company_code = $${paramIndex}`;
params.push(filter.company_code);
paramIndex++;
}
@@ -71,14 +73,14 @@ export class ExternalRestApiConnectionService {
// 활성 상태 필터
if (filter.is_active) {
query += ` AND is_active = $${paramIndex}`;
query += ` AND e.is_active = $${paramIndex}`;
params.push(filter.is_active);
paramIndex++;
}
// 인증 타입 필터
if (filter.auth_type) {
query += ` AND auth_type = $${paramIndex}`;
query += ` AND e.auth_type = $${paramIndex}`;
params.push(filter.auth_type);
paramIndex++;
}
@@ -86,9 +88,9 @@ export class ExternalRestApiConnectionService {
// 검색어 필터 (연결명, 설명, URL)
if (filter.search) {
query += ` AND (
connection_name ILIKE $${paramIndex} OR
description ILIKE $${paramIndex} OR
base_url ILIKE $${paramIndex}
e.connection_name ILIKE $${paramIndex} OR
e.description ILIKE $${paramIndex} OR
e.base_url ILIKE $${paramIndex}
)`;
params.push(`%${filter.search}%`);
paramIndex++;