177 lines
4.5 KiB
TypeScript
177 lines
4.5 KiB
TypeScript
/**
|
|
* 외부호출 설정 API 클라이언트
|
|
*/
|
|
|
|
import { apiClient } from "./client";
|
|
|
|
// 외부호출 설정 관련 상수들
|
|
export const CALL_TYPE_OPTIONS = [
|
|
{ value: "rest-api", label: "REST API" },
|
|
{ value: "webhook", label: "Webhook" },
|
|
{ value: "email", label: "이메일" },
|
|
] as const;
|
|
|
|
export const API_TYPE_OPTIONS = [
|
|
{ value: "generic", label: "일반 API" },
|
|
{ value: "slack", label: "Slack" },
|
|
{ value: "discord", label: "Discord" },
|
|
{ value: "teams", label: "Microsoft Teams" },
|
|
] as const;
|
|
|
|
export const ACTIVE_STATUS_OPTIONS = [
|
|
{ value: "Y", label: "활성" },
|
|
{ value: "N", label: "비활성" },
|
|
] as const;
|
|
|
|
export interface ExternalCallConfig {
|
|
id?: number;
|
|
config_name: string;
|
|
call_type: string;
|
|
api_type?: string;
|
|
config_data: any;
|
|
description?: string;
|
|
company_code?: string;
|
|
is_active?: string;
|
|
created_by?: string;
|
|
updated_by?: string;
|
|
}
|
|
|
|
export interface ExternalCallConfigFilter {
|
|
company_code?: string;
|
|
is_active?: string;
|
|
call_type?: string;
|
|
api_type?: string;
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 API 클래스
|
|
*/
|
|
export class ExternalCallConfigAPI {
|
|
/**
|
|
* 외부호출 설정 목록 조회
|
|
*/
|
|
static async getConfigs(filter: ExternalCallConfigFilter = {}): Promise<{
|
|
success: boolean;
|
|
data?: ExternalCallConfig[];
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const params = new URLSearchParams();
|
|
Object.entries(filter).forEach(([key, value]) => {
|
|
if (value) params.append(key, value);
|
|
});
|
|
|
|
const response = await apiClient.get(`/external-call-configs?${params.toString()}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 목록 조회 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 상세 조회
|
|
*/
|
|
static async getConfigById(id: number): Promise<{
|
|
success: boolean;
|
|
data?: ExternalCallConfig;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const response = await apiClient.get(`/external-call-configs/${id}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 상세 조회 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 생성
|
|
*/
|
|
static async createConfig(data: Omit<ExternalCallConfig, "id">): Promise<{
|
|
success: boolean;
|
|
data?: ExternalCallConfig;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const response = await apiClient.post("/external-call-configs", data);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 생성 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 수정
|
|
*/
|
|
static async updateConfig(
|
|
id: number,
|
|
data: Partial<ExternalCallConfig>,
|
|
): Promise<{
|
|
success: boolean;
|
|
data?: ExternalCallConfig;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const response = await apiClient.put(`/external-call-configs/${id}`, data);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 수정 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 삭제
|
|
*/
|
|
static async deleteConfig(id: number): Promise<{
|
|
success: boolean;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const response = await apiClient.delete(`/external-call-configs/${id}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 삭제 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 외부호출 설정 테스트
|
|
*/
|
|
static async testConfig(id: number): Promise<{
|
|
success: boolean;
|
|
message?: string;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const response = await apiClient.post(`/external-call-configs/${id}/test`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("외부호출 설정 테스트 실패:", error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : "알 수 없는 오류가 발생했습니다.",
|
|
};
|
|
}
|
|
}
|
|
}
|