diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 10:47:34 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 10:47:34 +0000 |
| commit | 8238c0c0ed6fd182d33f3437a22da1d80cfa928f (patch) | |
| tree | 32982329788c38e515866de2338584eede8a5924 /lib/basic-contract/sslvw-service.ts | |
| parent | d79f56ae5a9e5f72781f78fe0399018cfac44081 (diff) | |
(임수민) 법무검토 요청 데이터 조회 수정
Diffstat (limited to 'lib/basic-contract/sslvw-service.ts')
| -rw-r--r-- | lib/basic-contract/sslvw-service.ts | 76 |
1 files changed, 63 insertions, 13 deletions
diff --git a/lib/basic-contract/sslvw-service.ts b/lib/basic-contract/sslvw-service.ts index 9650d43a..38ecb67d 100644 --- a/lib/basic-contract/sslvw-service.ts +++ b/lib/basic-contract/sslvw-service.ts @@ -25,6 +25,22 @@ const FALLBACK_TEST_DATA: SSLVWPurInqReq[] = [ } ] +const normalizeOracleRows = (rows: Array<Record<string, unknown>>): SSLVWPurInqReq[] => { + return rows.map((item) => { + const convertedItem: SSLVWPurInqReq = {} + for (const [key, value] of Object.entries(item)) { + if (value instanceof Date) { + convertedItem[key] = value + } else if (value === null) { + convertedItem[key] = null + } else { + convertedItem[key] = String(value) + } + } + return convertedItem + }) +} + /** * SSLVW_PUR_INQ_REQ 테이블 전체 조회 * @returns 테이블 데이터 배열 @@ -51,19 +67,7 @@ export async function getSSLVWPurInqReqData(): Promise<{ console.log(`✅ [getSSLVWPurInqReqData] 조회 성공 - ${rows.length}건`) // 데이터 타입 변환 (필요에 따라 조정) - const cleanedResult = rows.map((item) => { - const convertedItem: SSLVWPurInqReq = {} - for (const [key, value] of Object.entries(item)) { - if (value instanceof Date) { - convertedItem[key] = value - } else if (value === null) { - convertedItem[key] = null - } else { - convertedItem[key] = String(value) - } - } - return convertedItem - }) + const cleanedResult = normalizeOracleRows(rows) return { success: true, @@ -80,3 +84,49 @@ export async function getSSLVWPurInqReqData(): Promise<{ } } } + +export async function getSSLVWPurInqReqByRegNo(regNo: string): Promise<{ + success: boolean + data?: SSLVWPurInqReq + error?: string +}> { + if (!regNo) { + return { + success: false, + error: 'REG_NO는 필수입니다.' + } + } + + try { + console.log(`[getSSLVWPurInqReqByRegNo] REG_NO=${regNo} 조회`) + const result = await oracleKnex.raw( + ` + SELECT * + FROM SSLVW_PUR_INQ_REQ + WHERE REG_NO = :regNo + `, + { regNo } + ) + + const rows = (result.rows || result) as Array<Record<string, unknown>> + const cleanedResult = normalizeOracleRows(rows) + + if (cleanedResult.length === 0) { + return { + success: false, + error: '해당 REG_NO에 대한 데이터가 없습니다.' + } + } + + return { + success: true, + data: cleanedResult[0] + } + } catch (error) { + console.error('[getSSLVWPurInqReqByRegNo] 오류:', error) + return { + success: false, + error: error instanceof Error ? error.message : 'REG_NO 조회 중 오류가 발생했습니다.' + } + } +} |
