UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

98 lines (97 loc) 4.47 kB
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>; }