umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
98 lines (97 loc) • 4.47 kB
TypeScript
import { Base } from '../Base/Base';
import { IModelRes, TQueryCb, IQueryData, IQuery, AppContext, IDatabaseInfo, IAppDB } from '../../../index';
import { MongoClient, Db } from 'mongodb';
/**
* Интерфейс для сохранения информации работы базы данных
*/
export interface IMongoDbInfo extends IDatabaseInfo {
/**
* Клиент подключения
*/
mongoClient: MongoClient | null;
/**
* Само подключение
*/
mongoConnect: MongoClient | null;
}
/**
* Адаптер для работы с базой данных mongodb
*/
export declare class MongoAdapter extends Base<IMongoDbInfo> {
/**
* Формат базы данных
*/
dbFormat: string;
constructor(options?: IAppDB);
/**
* Метод инициализации плагина.
* Вызывается один раз при подключении через `bot.use()`.
* @param appContext Контекст приложения
*/
init(appContext: AppContext): void;
connect(): Promise<boolean>;
/**
* Выполняет UPDATE-запрос.
* @param updateData Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.
*/
_update(updateData: IQuery): Promise<boolean>;
/**
* Выполняет INSERT-запрос.
* @param insertData Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.
*/
_insert(insertData: IQuery): Promise<boolean>;
/**
* Выполняет DELETE-запрос.
* @param removeData Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.
*/
_remove(removeData: IQuery): Promise<boolean>;
/**
* Выполняет произвольный запрос через callback.
*
* @param callback функция обработчик
*/
_query(callback: TQueryCb<MongoClient, Db>): Promise<unknown | null>;
/**
* Выполняет произвольный запрос через callback.
*
* Внутри себя вызывает this._query, основное отличие в том, что в данном методе пишутся метрики.
* @param callback функция обработчик
*/
query(callback: TQueryCb<MongoClient, Db>): Promise<unknown | IModelRes>;
/**
* Валидация запросов.
* Валидирует запрос, приводя его к корректному виду
* @param query
* @param element
*/
validate(query: IQuery, element: IQueryData | null): IQueryData;
/**
* Выполняет SELECT-запрос.
* @param selectData Дополнительная информация для запроса. Содержит информацию о таблице и структуре.
* @param where Сам запрос
* @param isOne Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.
*/
_select(selectData: IQuery, where: IQueryData | null, isOne?: boolean): Promise<IModelRes>;
/**
* Проверяет, установлено ли соединение с БД.
*/
isConnected(): Promise<boolean>;
/**
* Сохранение логов
* @param errorMsg
* @param error
* @protected
*/
protected _saveLog(errorMsg: string, error?: Error): void;
/**
* Закрывает все подключения к БД.
* Все процессы завершаются, и происходит сохранение данных.
*/
destroy(): Promise<void>;
/**
* Закрывает подключение к определенной таблице.
* В MongoDB нет концепции "закрытия таблицы". Метод close() закрывает всё соединение с базой.
* @param tableName
*/
close(tableName: string): Promise<void>;
}