@happ-integ/integ-api
Клиент для Happ Integ API.
Установка
bash
pnpm add @happ-integ/integ-apiИспользование
Инициализация
typescript
import { IntegApiClient } from "@happ-integ/integ-api";
const api = new IntegApiClient("https://api.integ.happ.tools", env.INTEG_API_TOKEN);Интеграции
typescript
// Создать или обновить интеграцию
const integration = await api.upsertIntegration("sofa");
// Получить все интеграции
const integrations = await api.getIntegrations();Credentials
typescript
// Получить credentials
const creds = await api.getCredentials("sofa");
// Установить credentials
await api.setCredentials("sofa", {
NETHUNT_API_KEY: "xxx",
NETHUNT_EMAIL: "xxx",
});
// Удалить credentials
await api.deleteCredentials("sofa");Handlers
typescript
// Получить handlers
const handlers = await api.getHandlers("sofa");
// Создать handler
const handler = await api.createHandler("sofa", {
name: "init",
event: "sofa/init",
description: "Initialize integration",
});
// Обновить handler
await api.updateHandler("sofa", "init", {
description: "Updated",
});
// Удалить handler
await api.deleteHandler("sofa", "init");Логирование
typescript
// Получить логи
const logs = await api.getLogs("sofa");
// Фильтр
const errorLogs = await api.getLogs("sofa", {
level: "error",
limit: 100,
});API
IntegApiClient
typescript
new IntegApiClient(apiUrl: string, accessToken: string)Методы Интеграции
upsertIntegration(name): Promise<Integration>
getIntegrations(): Promise<Integration[]>
Методы Credentials
getCredentials(integrationName): Promise<Credential>
setCredentials(integrationName, data): Promise<Credential>
deleteCredentials(integrationName): Promise<void>
Методы Handlers
getHandlers(integrationName): Promise<Handler[]>
createHandler(integrationName, params): Promise<Handler>
updateHandler(integrationName, handlerName, params): Promise<Handler>
deleteHandler(integrationName, handlerName): Promise<void>
Методы Логирование
getLogs(integrationName, options?): Promise<any[]>
getLog(logId): Promise<any>
Типы
typescript
interface Integration {
id: string;
name: string;
createdAt: string;
updatedAt: string;
}
interface Credential {
integrationName: string;
key: string;
encryptedValue: string;
}
interface Handler {
integrationName: string;
name: string;
event: string;
description?: string;
}Access Token
Получить из настроек Integ API.
INTEG_API_TOKEN=xxxxx
INTEG_API_URL=https://api.integ.happ.toolsКогда использовать
- ✅ Управление интеграциями
- ✅ Хранение credentials
- ✅ Centralised logging