summaryrefslogtreecommitdiff
path: root/lib/forms
diff options
context:
space:
mode:
Diffstat (limited to 'lib/forms')
-rw-r--r--lib/forms/sedp-actions.ts79
1 files changed, 75 insertions, 4 deletions
diff --git a/lib/forms/sedp-actions.ts b/lib/forms/sedp-actions.ts
index d20fb9fc..4883a33f 100644
--- a/lib/forms/sedp-actions.ts
+++ b/lib/forms/sedp-actions.ts
@@ -21,6 +21,45 @@ interface SEDPTemplateData {
[key: string]: any;
}
+// ๐Ÿ” ์‹ค์ œ SEDP API ์‘๋‹ต ๊ตฌ์กฐ (๋Œ€๋ฌธ์ž)
+interface SEDPTemplateResponse {
+ TMPL_ID: string;
+ NAME: string;
+ TMPL_TYPE: string;
+ SPR_LST_SETUP?: {
+ ACT_SHEET: string;
+ HIDN_SHEETS: string[];
+ CONTENT?: string;
+ DATA_SHEETS: Array<{
+ SHEET_NAME: string;
+ REG_TYPE_ID: string;
+ MAP_CELL_ATT: Array<{
+ ATT_ID: string;
+ IN: string;
+ }>;
+ }>;
+ };
+ GRD_LST_SETUP?: {
+ REG_TYPE_ID: string;
+ SPR_ITM_IDS: string[];
+ ATTS: any[];
+ };
+ SPR_ITM_LST_SETUP?: {
+ ACT_SHEET: string;
+ HIDN_SHEETS: string[];
+ CONTENT?: string;
+ DATA_SHEETS: Array<{
+ SHEET_NAME: string;
+ REG_TYPE_ID: string;
+ MAP_CELL_ATT: Array<{
+ ATT_ID: string;
+ IN: string;
+ }>;
+ }>;
+ };
+ [key: string]: any;
+}
+
/**
* SEDP์—์„œ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์„œ๋ฒ„ ์•ก์…˜
*/
@@ -74,7 +113,7 @@ export async function fetchTagDataFromSEDP(
export async function fetchTemplateFromSEDP(
projectCode: string,
formCode: string
-): Promise<SEDPTemplateData[]> {
+): Promise<SEDPTemplateResponse[]> {
try {
// Get the token
const apiKey = await getSEDPToken();
@@ -132,14 +171,46 @@ export async function fetchTemplateFromSEDP(
}
const data = await response.json();
- return data as SEDPTemplateData;
+
+ // ๐Ÿ” API ์‘๋‹ต ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ™•์ธ ๋ฐ ๋กœ๊น…
+ console.log('๐Ÿ” SEDP Template API Response for', tmplId, ':', {
+ hasTMPL_ID: !!data.TMPL_ID,
+ hasTemplateId: !!(data as any).templateId,
+ keys: Object.keys(data),
+ sample: data
+ });
+
+ // ๐Ÿ” TMPL_ID ํ•„๋“œ ๊ฒ€์ฆ
+ if (!data.TMPL_ID) {
+ console.error('โŒ Missing TMPL_ID in API response:', data);
+ // templateId๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณ€ํ™˜ ์‹œ๋„
+ if ((data as any).templateId) {
+ console.warn('โš ๏ธ Found templateId instead of TMPL_ID, converting...');
+ data.TMPL_ID = (data as any).templateId;
+ }
+ }
+
+ return data as SEDPTemplateResponse;
});
// ๋ชจ๋“  API ํ˜ธ์ถœ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘
const templates = await Promise.all(templatePromises);
- // null์ด๋‚˜ undefined๊ฐ€ ์•„๋‹Œ ๊ฐ’๋“ค๋งŒ ํ•„ํ„ฐ๋ง (์‘๋‹ต์ด ์—†๋Š” ๊ฒฝ์šฐ ์ œ์™ธ)
- const validTemplates = templates.filter(template => template != null);
+ // ๐Ÿ” null์ด๋‚˜ undefined๊ฐ€ ์•„๋‹Œ ๊ฐ’๋“ค๋งŒ ํ•„ํ„ฐ๋งํ•˜๊ณ  TMPL_ID ๊ฒ€์ฆ
+ const validTemplates = templates.filter(template => {
+ if (!template) {
+ console.warn('โš ๏ธ Null or undefined template received');
+ return false;
+ }
+ if (!template.TMPL_ID) {
+ console.error('โŒ Template missing TMPL_ID:', template);
+ return false;
+ }
+ return true;
+ });
+
+ console.log(`โœ… fetchTemplateFromSEDP completed: ${validTemplates.length} valid templates`);
+ validTemplates.forEach(t => console.log(` - ${t.TMPL_ID}: ${t.NAME} (${t.TMPL_TYPE})`));
return validTemplates;