chat3-client
v0.0.22
Published
JavaScript client library for Chat3 Tenant API
Maintainers
Readme
@chat3/client
JavaScript клиент для Chat3 Tenant API.
Установка
npm install @chat3/clientИспользование
const { Chat3Client } = require('@chat3/client');
// Инициализация клиента
const client = new Chat3Client({
baseURL: 'http://localhost:3000/api',
apiKey: 'your-api-key-here',
tenantId: 'tnt_default', // Опционально, по умолчанию tnt_default
debug: false // Опционально, включает логирование запросов
});
// Получение диалогов
const dialogs = await client.getDialogs();
// Создание диалога
const dialog = await client.createDialog({
name: 'VIP чат',
createdBy: 'carl',
members: [
{ userId: 'carl', type: 'user', name: 'Carl Johnson' }
]
});
// Получение сообщений
const messages = await client.getDialogMessages(dialogId);
// Создание сообщения
const message = await client.createMessage(dialogId, {
senderId: 'carl',
content: 'Hello!',
type: 'internal.text'
});Конфигурация
Клиент настраивается через параметры конструктора:
const client = new Chat3Client({
baseURL: 'http://localhost:3000/api', // Базовый URL API
apiKey: 'your-api-key-here', // API ключ для аутентификации
tenantId: 'tnt_default', // ID тенанта (опционально)
debug: false // Включить логирование (опционально)
});Параметры:
baseURL(обязательно) - Базовый URL Tenant API (например,http://localhost:3000/api)apiKey(обязательно) - API ключ для аутентификацииtenantId(опционально) - ID тенанта, по умолчаниюtnt_defaultdebug(опционально) - Включить логирование HTTP запросов черезaxios-logger
API
Tenants
getTenants(params)- Получить все тенантыgetTenant(tenantId)- Получить тенант по IDcreateTenant(data)- Создать тенантdeleteTenant(tenantId)- Удалить тенант
Dialogs
getDialogs(params)- Получить все диалогиcreateDialog(data)- Создать диалогgetDialog(dialogId, params)- Получить диалог по IDgetDialogMembers(dialogId, params)- Получить участников диалогаdeleteDialog(dialogId)- Удалить диалогgetUserDialogs(userId, params)- Получить диалоги пользователя
Messages
getDialogMessages(dialogId, params)- Получить сообщения диалогаgetUserDialogMessages(userId, dialogId, params)- Получить сообщения в контексте пользователяcreateMessage(dialogId, data)- Создать сообщениеgetMessage(messageId)- Получить сообщение по IDgetUserMessage(userId, dialogId, messageId)- Получить сообщение в контексте пользователяupdateMessage(messageId, data)- Обновить сообщениеgetMessages(params)- Получить все сообщения
Dialog Members
addDialogMember(dialogId, userId, options)- Добавить участникаremoveDialogMember(dialogId, userId)- Удалить участникаupdateDialogMemberUnread(dialogId, userId, data)- Обновить счетчик непрочитанных
Message Status
updateMessageStatusInContext(userId, dialogId, messageId, status)- Обновить статус сообщенияgetMessageStatuses(userId, dialogId, messageId, params)- Получить историю статусов
Reactions
getMessageReactionsInContext(userId, dialogId, messageId)- Получить реакции на сообщениеsetReaction(userId, dialogId, messageId, action, reaction)- Установить/снять реакциюaction: 'set' или 'unset'reaction: эмодзи или текст реакции (например, '👍', '❤️')
Users
getUsers(params)- Получить всех пользователейcreateUser(userId, data)- Создать пользователяgetUser(userId)- Получить пользователя по IDupdateUser(userId, data)- Обновить пользователяdeleteUser(userId)- Удалить пользователя
Meta
getMeta(entityType, entityId, key, params)- Получить мета-тегsetMeta(entityType, entityId, key, value, options)- Установить мета-тегvalue- значение мета-тега (string, number, boolean, object, array)options.dataType- тип данных: 'string', 'number', 'boolean', 'object', 'array' (по умолчанию 'string')
deleteMeta(entityType, entityId, key, params)- Удалить мета-тег
Typing
sendTypingSignal(dialogId, userId)- Отправить индикатор печати
Тестирование
Unit тесты
npm testТесты используют моки и не требуют запуска реального API.
Интеграционные тесты
Автоматический запуск (рекомендуется)
Скрипт автоматически запустит API, сгенерирует ключ и протестирует клиент:
# В директории client
./test-with-api.shСкрипт выполнит:
- ✅ Проверку зависимостей и сервисов (MongoDB, RabbitMQ)
- ✅ Генерацию API ключа
- ✅ Запуск tenant-api в фоне
- ✅ Ожидание готовности API
- ✅ Запуск интеграционных тестов
- ✅ Автоматическую очистку при завершении
Ручной запуск
Для ручной проверки:
Запустите tenant-api:
# В корне проекта npm run start:tenant-apiСгенерируйте API ключ:
# В корне проекта npm run generate-keyЗапустите тестовый скрипт:
# В директории client CHAT3_API_KEY=your-api-key node test-integration.js
Или с переменными окружения:
CHAT3_API_KEY=your-key \
CHAT3_BASE_URL=http://localhost:3000/api \
CHAT3_TENANT_ID=tnt_default \
node test-integration.jsЛицензия
ISC
