"use server"; import { getSEDPToken } from "@/lib/sedp/sedp-token"; interface SEDPTagData { [tableName: string]: Array<{ TAG_NO: string; TAG_DESC: string; ATTRIBUTES: Array<{ ATT_ID: string; VALUE: string; }>; }>; } interface SEDPTemplateData { templateId: string; content: string; projectNo: string; regTypeId: string; [key: string]: any; } /** * SEDP에서 태그 데이터를 가져오는 서버 액션 */ export async function fetchTagDataFromSEDP( projectCode: string, formCode: string ): Promise { try { // Get the token const apiKey = await getSEDPToken(); // Define the API base URL const SEDP_API_BASE_URL = process.env.SEDP_API_BASE_URL || 'http://sedpwebapi.ship.samsung.co.kr/api'; // Make the API call const response = await fetch( `${SEDP_API_BASE_URL}/Data/GetPubData`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'accept': '*/*', 'ApiKey': apiKey, 'ProjectNo': projectCode }, body: JSON.stringify({ ProjectNo: projectCode, REG_TYPE_ID: formCode, ContainDeleted: false }) } ); if (!response.ok) { const errorText = await response.text(); throw new Error(`SEDP API request failed: ${response.status} ${response.statusText} - ${errorText}`); } const data = await response.json(); return data as SEDPTagData; } catch (error: unknown) { console.error('Error calling SEDP API:', error); const errorMessage = error instanceof Error ? error.message : 'Unknown error'; throw new Error(`Failed to fetch data from SEDP API: ${errorMessage}`); } } /** * SEDP에서 템플릿 데이터를 가져오는 서버 액션 */ export async function fetchTemplateFromSEDP( projectCode: string, formCode: string ): Promise { try { // Get the token const apiKey = await getSEDPToken(); // Define the API base URL const SEDP_API_BASE_URL = process.env.SEDP_API_BASE_URL || 'http://sedpwebapi.ship.samsung.co.kr/api'; // Make the API call const response = await fetch( `${SEDP_API_BASE_URL}/Template/GetByRegisterID`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'accept': '*/*', 'ApiKey': apiKey, 'ProjectNo': projectCode }, body: JSON.stringify({ WithContent: true, ProjectNo: projectCode, REG_TYPE_ID: formCode }) } ); if (!response.ok) { const errorText = await response.text(); throw new Error(`SEDP Template API request failed: ${response.status} ${response.statusText} - ${errorText}`); } const data = await response.json(); return data as SEDPTemplateData; } catch (error: unknown) { console.error('Error calling SEDP Template API:', error); const errorMessage = error instanceof Error ? error.message : 'Unknown error'; throw new Error(`Failed to fetch template from SEDP API: ${errorMessage}`); } }