44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
/**
|
|
* FieldConfig 기반 데이터 CRUD API 래퍼
|
|
* 기존 dataApi를 활용하면서 FieldConfig 컴포넌트에서 쓰기 편한 형태로 감쌈
|
|
*
|
|
* ★ 별도 인터페이스 정의 안 함 — Record<string, any>
|
|
*/
|
|
|
|
import { dataApi } from './data';
|
|
|
|
/** FieldConfig 기반 목록 조회 */
|
|
export async function fcList(params: Record<string, any>): Promise<Record<string, any>> {
|
|
const { tableName, page = 1, size = 20, sortBy, sortOrder, ...filters } = params;
|
|
return dataApi.getTableData(tableName, {
|
|
page,
|
|
size,
|
|
sortBy,
|
|
sortOrder,
|
|
filters,
|
|
});
|
|
}
|
|
|
|
/** FieldConfig 기반 단건 조회 */
|
|
export async function fcGet(tableName: string, id: string): Promise<Record<string, any>> {
|
|
const result = await dataApi.getRecordDetail(tableName, id);
|
|
return result.data ?? {};
|
|
}
|
|
|
|
/** FieldConfig 기반 등록 */
|
|
export async function fcInsert(tableName: string, data: Record<string, any>): Promise<any> {
|
|
return dataApi.createRecord(tableName, data);
|
|
}
|
|
|
|
/** FieldConfig 기반 수정 */
|
|
export async function fcUpdate(tableName: string, id: string, data: Record<string, any>): Promise<any> {
|
|
return dataApi.updateRecord(tableName, id, data);
|
|
}
|
|
|
|
/** FieldConfig 기반 삭제 */
|
|
export async function fcDelete(tableName: string, ids: string[]): Promise<any> {
|
|
// 단건씩 삭제 (bulk delete API가 있으면 교체)
|
|
const results = await Promise.all(ids.map((id) => dataApi.deleteRecord(tableName, id)));
|
|
return results;
|
|
}
|