82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
/**
|
|
* 채번 규칙 관리 API 클라이언트
|
|
*/
|
|
|
|
import { apiClient } from "./client";
|
|
import { NumberingRuleConfig } from "@/types/numbering-rule";
|
|
|
|
export interface ApiResponse<T> {
|
|
success: boolean;
|
|
data?: T;
|
|
error?: string;
|
|
message?: string;
|
|
}
|
|
|
|
export async function getNumberingRules(): Promise<ApiResponse<NumberingRuleConfig[]>> {
|
|
try {
|
|
const response = await apiClient.get("/numbering-rules");
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "규칙 목록 조회 실패" };
|
|
}
|
|
}
|
|
|
|
export async function getNumberingRuleById(ruleId: string): Promise<ApiResponse<NumberingRuleConfig>> {
|
|
try {
|
|
const response = await apiClient.get(`/numbering-rules/${ruleId}`);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "규칙 조회 실패" };
|
|
}
|
|
}
|
|
|
|
export async function createNumberingRule(
|
|
config: NumberingRuleConfig
|
|
): Promise<ApiResponse<NumberingRuleConfig>> {
|
|
try {
|
|
const response = await apiClient.post("/numbering-rules", config);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "규칙 생성 실패" };
|
|
}
|
|
}
|
|
|
|
export async function updateNumberingRule(
|
|
ruleId: string,
|
|
config: Partial<NumberingRuleConfig>
|
|
): Promise<ApiResponse<NumberingRuleConfig>> {
|
|
try {
|
|
const response = await apiClient.put(`/numbering-rules/${ruleId}`, config);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "규칙 수정 실패" };
|
|
}
|
|
}
|
|
|
|
export async function deleteNumberingRule(ruleId: string): Promise<ApiResponse<void>> {
|
|
try {
|
|
const response = await apiClient.delete(`/numbering-rules/${ruleId}`);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "규칙 삭제 실패" };
|
|
}
|
|
}
|
|
|
|
export async function generateCode(ruleId: string): Promise<ApiResponse<{ code: string }>> {
|
|
try {
|
|
const response = await apiClient.post(`/numbering-rules/${ruleId}/generate`);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "코드 생성 실패" };
|
|
}
|
|
}
|
|
|
|
export async function resetSequence(ruleId: string): Promise<ApiResponse<void>> {
|
|
try {
|
|
const response = await apiClient.post(`/numbering-rules/${ruleId}/reset`);
|
|
return response.data;
|
|
} catch (error: any) {
|
|
return { success: false, error: error.message || "시퀀스 초기화 실패" };
|
|
}
|
|
}
|