summaryrefslogtreecommitdiff
path: root/lib/basic-contract/sslvw-service.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 10:47:34 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 10:47:34 +0000
commit8238c0c0ed6fd182d33f3437a22da1d80cfa928f (patch)
tree32982329788c38e515866de2338584eede8a5924 /lib/basic-contract/sslvw-service.ts
parentd79f56ae5a9e5f72781f78fe0399018cfac44081 (diff)
(임수민) 법무검토 요청 데이터 조회 수정
Diffstat (limited to 'lib/basic-contract/sslvw-service.ts')
-rw-r--r--lib/basic-contract/sslvw-service.ts76
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 조회 중 오류가 발생했습니다.'
+ }
+ }
+}