Интерфейсы
Документация всех TypeScript интерфейсов, используемых в приложении.
Аутентификация
IUser
Интерфейс пользователя системы.
interface IUser {
id: string; // UUID пользователя
email: string; // Email адрес
firstName?: string; // Имя (опционально)
lastName?: string; // Фамилия (опционально)
createdAt?: string; // Дата создания (ISO 8601)
}ILoginRequest
Данные для входа в систему.
interface ILoginRequest {
email: string; // Email пользователя
password: string; // Пароль
}ILoginResponse
Ответ при успешной авторизации.
interface ILoginResponse {
accessToken: string; // JWT access токен
refreshToken: string; // JWT refresh токен
}IRegisterRequest
Данные для регистрации нового пользователя.
interface IRegisterRequest {
email: string; // Email адрес
password: string; // Пароль
firstName?: string; // Имя (опционально)
lastName?: string; // Фамилия (опционально)
}Интеграции
IIntegration
Основной интерфейс интеграции.
interface IIntegration {
id: string; // UUID интеграции
name: string; // Название интеграции
createdAt: string; // Дата создания (ISO 8601)
updatedAt: string; // Дата обновления (ISO 8601)
}ICreateIntegrationRequest
Данные для создания интеграции.
interface ICreateIntegrationRequest {
name: string; // Название интеграции
}IUpdateIntegrationRequest
Данные для обновления интеграции.
interface IUpdateIntegrationRequest {
name?: string; // Новое название (опционально)
}ISyncHandlersRequest
Данные для синхронизации handlers из OpenAPI.
interface ISyncHandlersRequest {
integrationName: string; // Имя интеграции в integ-core (например, "sofa")
baseUrl?: string; // Базовый URL integ-core (опционально)
}ISyncHandlersResponse
Ответ после синхронизации handlers.
interface ISyncHandlersResponse {
success: boolean; // Успешность операции
created: number; // Количество созданных handlers
updated: number; // Количество обновлённых handlers
}Credentials
ICredential
Интерфейс credential интеграции.
interface ICredential {
id: string; // UUID credential
integrationId: string; // UUID родительской интеграции
key: string; // Ключ credential
value: string; // Значение credential
createdAt: string; // Дата создания (ISO 8601)
updatedAt: string; // Дата обновления (ISO 8601)
}ICreateCredentialRequest
Данные для создания credential.
interface ICreateCredentialRequest {
key: string; // Ключ (например, "API_KEY")
value: string; // Значение
}IUpdateCredentialRequest
Данные для обновления credential.
interface IUpdateCredentialRequest {
value: string; // Новое значение
}Secrets
ISecret
Интерфейс секрета интеграции.
interface ISecret {
id: string; // UUID секрета
integrationId: string; // UUID родительской интеграции
key: string; // Ключ секрета
value: string; // Значение секрета (зашифровано)
createdAt: string; // Дата создания (ISO 8601)
updatedAt: string; // Дата обновления (ISO 8601)
}ICreateSecretRequest
Данные для создания секрета.
interface ICreateSecretRequest {
key: string; // Ключ (например, "WEBHOOK_SECRET")
value: string; // Значение
}IUpdateSecretRequest
Данные для обновления секрета.
interface IUpdateSecretRequest {
value: string; // Новое значение
}Handlers
IHandler
Интерфейс обработчика событий.
interface IHandler {
id: string; // UUID handler'а
integrationId: string; // UUID родительской интеграции
name: string; // Название handler'а (для webhook URL)
defaultArgs: Record<string, any>; // Дефолтные аргументы
createdAt: string; // Дата создания (ISO 8601)
updatedAt: string; // Дата обновления (ISO 8601)
}Пример:
const handler: IHandler = {
id: "uuid-here",
integrationId: "integration-uuid",
name: "order-created",
defaultArgs: {
timeout: 5000,
retries: 3
},
createdAt: "2024-01-01T00:00:00.000Z",
updatedAt: "2024-01-01T00:00:00.000Z"
};ICreateHandlerRequest
Данные для создания handler'а.
interface ICreateHandlerRequest {
name: string; // Название handler'а
defaultArgs?: Record<string, any>; // Дефолтные аргументы (опционально)
}IUpdateHandlerRequest
Данные для обновления handler'а.
interface IUpdateHandlerRequest {
name?: string; // Новое название (опционально)
defaultArgs?: Record<string, any>; // Новые аргументы (опционально)
}IHandlerExecuteRequest
Данные для выполнения handler'а.
interface IHandlerExecuteRequest {
url?: string; // Кастомный URL (опционально)
body?: Record<string, unknown>; // Тело запроса (опционально)
}IHandlerExecuteResponse
Ответ после выполнения handler'а.
interface IHandlerExecuteResponse {
statusCode: number; // HTTP статус код
body: unknown; // Тело ответа
timestamp: number; // Unix timestamp выполнения
}Access Tokens
IAccessToken
Интерфейс токена доступа к API.
interface IAccessToken {
id: string; // UUID токена
name: string; // Название токена
token?: string; // Токен (видно только при создании)
expiresAt?: string; // Дата истечения (опционально, ISO 8601)
createdAt: string; // Дата создания (ISO 8601)
}ICreateAccessTokenRequest
Данные для создания access token.
interface ICreateAccessTokenRequest {
name: string; // Название токена
}IAccessTokenResponse
Ответ при создании токена (содержит полный токен).
interface IAccessTokenResponse extends IAccessToken {
token: string; // Полный токен (виден только один раз!)
}Важно
Токен виден только один раз при создании. После этого увидеть его повторно невозможно!
Общие интерфейсы
API Response Wrappers
Некоторые эндпоинты могут возвращать обернутые ответы:
interface IApiResponse<T> {
data: T;
message?: string;
status: "success" | "error";
}
interface IApiError {
message: string;
statusCode: number;
error?: string;
}Pagination
Для пагинированных запросов:
interface IPaginationParams {
page?: number; // Номер страницы (по умолчанию 1)
limit?: number; // Кол-во элементов (по умолчанию 10)
sortBy?: string; // Поле для сортировки
sortOrder?: "asc" | "desc"; // Направление сортировки
}
interface IPaginatedResponse<T> {
data: T[];
total: number; // Общее кол-во элементов
page: number; // Текущая страница
limit: number; // Элементов на странице
totalPages: number; // Всего страниц
}