ERP-node/frontend/lib/api/excelMapping.ts

107 lines
2.6 KiB
TypeScript
Raw Permalink Normal View History

import { apiClient } from "./client";
export interface ExcelMappingTemplate {
id?: number;
tableName: string;
excelColumns: string[];
excelColumnsHash: string;
columnMappings: Record<string, string | null>; // { "엑셀컬럼": "시스템컬럼" }
companyCode: string;
createdDate?: string;
updatedDate?: string;
}
export interface ApiResponse<T> {
success: boolean;
data?: T;
message?: string;
error?: string;
}
/**
* 릿
*
*/
export async function findMappingByColumns(
tableName: string,
excelColumns: string[]
): Promise<ApiResponse<ExcelMappingTemplate | null>> {
try {
const response = await apiClient.post("/excel-mapping/find", {
tableName,
excelColumns,
});
return response.data;
} catch (error: any) {
console.error("매핑 템플릿 조회 실패:", error);
return {
success: false,
error: error.message || "매핑 템플릿 조회 실패",
};
}
}
/**
* 릿 (UPSERT)
* + ,
*/
export async function saveMappingTemplate(
tableName: string,
excelColumns: string[],
columnMappings: Record<string, string | null>
): Promise<ApiResponse<ExcelMappingTemplate>> {
try {
const response = await apiClient.post("/excel-mapping/save", {
tableName,
excelColumns,
columnMappings,
});
return response.data;
} catch (error: any) {
console.error("매핑 템플릿 저장 실패:", error);
return {
success: false,
error: error.message || "매핑 템플릿 저장 실패",
};
}
}
/**
* 릿
*/
export async function getMappingTemplates(
tableName: string
): Promise<ApiResponse<ExcelMappingTemplate[]>> {
try {
const response = await apiClient.get(
`/excel-mapping/list/${encodeURIComponent(tableName)}`
);
return response.data;
} catch (error: any) {
console.error("매핑 템플릿 목록 조회 실패:", error);
return {
success: false,
error: error.message || "매핑 템플릿 목록 조회 실패",
};
}
}
/**
* 릿
*/
export async function deleteMappingTemplate(
id: number
): Promise<ApiResponse<void>> {
try {
const response = await apiClient.delete(`/excel-mapping/${id}`);
return response.data;
} catch (error: any) {
console.error("매핑 템플릿 삭제 실패:", error);
return {
success: false,
error: error.message || "매핑 템플릿 삭제 실패",
};
}
}