Язык скриптов
Триггерные функции
log(...logArgs: any[])
Описание:
Выводит данные в консоль (консоль сервера, в админке не видно).
Параметры:
logArgs( any[ ] ) — список значений, которые нужно вывести.
Возвращаемое значение:
any[]
Тип возвращаемого значения:
Массив данных.
Пример: —
getUsers(): IUser[]
Описание:
Возвращает информацию о пользователях (без паролей).
Параметры:
query ( string )— SQL-запрос.
Возвращаемое значение:
IUser[ ]
Тип возвращаемого значения:
Массив.
Пример: —
getAll(dbName: string): IDynamicEntity[ ]
Описание:
Получает все данные из пользовательской таблицы.
Параметры:
dbName( string ) — имя таблицы в БД;
Возвращаемое значение:
Массив.
Тип возвращаемого значения: —
Пример: —
getById(dbName: string, id: string): IDynamicEntity
Описание:
Получает одну строку из пользовательской таблицы по ID.
Параметры:
dbName( string ) — имя таблицы в БД;id( string ) — id строки.
Возвращаемое значение:
Объект содержимого в БД.
Тип возвращаемого значения: —
Пример:
getByFields(dbName: string, fields: Partial<IDynamicEntity>): IDynamicEntity[]
Описание:
Получает набор строк из таблицы, где поля соответствуют значениям.
Параметры:
- dbName ( string ) — имя таблицы в БД;
- fields ( ) — фильтр по значениям*.
Возвращаемое значение:
Массив объектов.
Тип возвращаемого значения:
Ключ: значение.
Пример:
{name: ‘abc’, count: 2} - все у которых name = abс, фильтрация по 2 полям.
IDynamicEntity { id: string, createdAt?: Date,
updatedAt?: Date, deletedAt?: Date, isDeleted?: boolean, [key: string]: any, }
* пользователи CMS могут создавать таблицы с произвольными количеством полей (столбцов).
create(dbName: string, entity: Partial<IDynamicEntity>): IDynamicEntity
Описание:
Создает строку в таблице.
Параметры:
dbName( string ) — имя таблицы в БД;entity( ) — данные новой строки.
Возвращаемое значение:
Объект.
Тип возвращаемого значения:
Ключ: значение.
Пример: —
edit(dbName: string, id: string, entity: Partial<IDynamicEntity>): IDynamicEntity
Описание:
Изменяет данные в строке таблицы.
Параметры:
dbName( string ) — имя таблицы в БД;id( string ) — id строки;entity( ) — изменяемые данные.
Возвращаемое значение:
Объект.
Тип возвращаемого значения:
Ключ: значение.
Пример: —
deleteById(dbName: string, id: string): boolean
Описание:
Удаляет строку таблицы по ID.
Параметры:
dbName( string ) — имя таблицы в БД;id(string ) — id строки.
Возвращаемое значение:
true , если удаление прошло успешно.
Тип возвращаемого значения:
boolean
Пример: —
getTableById(id: string): ITable
Описание:
Получить метаданные о таблице.
Параметры:
id( string ) — id таблицы.
Возвращаемое значение: —
Тип возвращаемого значения: —
Пример:
export interface ITable extends IEntity {
dbName: string;
name: string;
isSystem: boolean;
fields?: IField[];
}
export interface IEntity {
id: string;
createdAt: Date;
updatedAt: Date;
deletedAt: Date;
isDeleted: boolean;
}
sqlQuery(query: string, params: any[ ]): any[ ]
Описание:
Выполняет произвольный SQL-запрос.
Параметры:
query( string ) — SQL-запрос.params( any [ ])* — параметры запроса.
Возвращаемое значение:
any[]
Тип возвращаемого значения:
Массив.
Пример: —
*
any— обертка библиотеки knex https://knexjs.org/guide/raw.html#raw-queries
sendMail(to: string, subject:string, text:string): SMTPTransport.SentMessageInfo
Описание:
Отправляет email сообщение.
Параметры:
to( string ) — получатель;subject( string ) — тема письма;text( string ) — содержимое.
Возвращаемое значение:
Объект из библиотеки.
Тип возвращаемого значения: —
Пример: —
sendBotMessageToUser(...)
sendBotMessageToUser(
botId: string,
userId: string,
message: string,
buttons?: IBotButtonFlexible[],
buttonsDirection?: BotButtonsDirection,
): {
externalChatId: string;
externalMessageId: string;
}
Описание:
Отправляет сообщение пользователю через бот.
Параметры:
botId( string ) — id бота в CMS;userId( string ) — id пользователя в CMS;message( string ) — сообщение;buttons ( string ) — массив кнопок вида:id( string ) — id кнопки;title( string ) — заголовок кнопки;data( JSONType ) — данные, доступные в триггере кнопки;link( string ) — URL кнопки.buttonsDirection( ) — vertical или horizontal расположение кнопок.
Возвращаемое значение:
externalChatId— id чата во внешней системе;externalMessageId— id сообщения во внешней системе.
Тип возвращаемого значения: —
Пример:
export interface IBotButtonFlexible {
// id сущности кнопки
(IBotButton.id) id: string
// Заголовок кнопки. Денормализация (дублирование) IBotButton.title по
id. title: string data: JSONType link: string }
sendBotMessage(...)
sendBotMessage(
botId: string,
externalChatId: string,
message: string,
buttons?: IBotButtonFlexible[],
buttonsDirection?: BotButtonsDirection,
): {
externalChatId: string;
externalMessageId: string;
}
Описание:
Отправляет сообщение через бот по id внешнего чата.
Параметры:
botId( string ) — id бота в CMS;externalChatId( string ) — id чата во внешней системе;message( string ) — сообщение;buttons( ) — массив кнопок вида:id( string ) — id кнопки;title( string ) — заголовок кнопки;data( JSONType ) — данные, доступные в триггере кнопки;link( string ) — URL кнопки;buttonsDirection( ) — vertical или horizontal расположение кнопок.
Возвращаемое значение:
externalChatId- id чата во внешней системе;externalMessageId- id сообщения во внешней системе.
Тип возвращаемого значения: —
Пример: —
editBotMessage(...)
editBotMessage(
botId: string,
externalChatId: string,
externalMessageId: string,
message: string,
buttons?: IBotButtonFlexible[],
buttonsDirection?: BotButtonsDirection,
): boolean
Описание:
Редактирует сообщение в боте по внешнему id.
Параметры:
botId( string ) — id бота в CMS;externalChatId( string ) — id чата во внешней системе;externalMessageId( string ) — id сообщения во внешней системе;message( string ) — сообщение;buttons( ) — массив кнопок вида:id( string ) — id кнопки;title( string ) — заголовок кнопки;data( JSONType ) — данные, доступные в триггере кнопки;link( string ) — URL кнопки;buttonsDirection( ) — vertical или horizontal расположение кнопок.
Возвращаемое значение:
true — при успехе.
Тип возвращаемого значения:
boolean
Пример: —
excelToObject(excelFileId: string): string[][][]
Описание:
Получает данные из Excel-файла.
Параметры:
excelFileId( string ) — ID файла.
Возвращаемое значение:
string[ ][ ][ ] — массив таблиц c массивом строк и массивом ячеек.
Тип возвращаемого значения:
Массив.
Пример: —
fetchJson(url: string, params: RequestInit): any
Описание:
Получает JSON по URL.
Параметры:
url( string ) — URL;,params( ) — описание.
Возвращаемое значение:
any
Тип возвращаемого значения: —
Пример: —
fetchText(url: string, params: RequestInit): string
Описание:
Получает текст из URL.
Параметры:
url( string ) — URL;,params( ? ) — описание.
Возвращаемое значение: —
Тип возвращаемого значения: —
Пример: —
md5(data: string): string
Описание:
Создает MD5-хэш строки.
Параметры: —
Возвращаемое значение: —
Тип возвращаемого значения: —
Пример: —
user: IUser
Описание:
Объект с текущим пользователем.
Параметры: —
Возвращаемое значение:
Объект.
Тип возвращаемого значения: —
Пример:
export interface IUser extends IEntity {
_id: string;
id: string;
name: string;
email: string;
password?: string;
resetPasswordCode?: string;
resetPasswordExpires?: Date;
confirmEmail?: string;
confirmEmailExpires?: Date;
confirmEmailCode?: string;
// role: UserRole;
roleId: string;
phone?: string;
avatarId?: string;
}
args: any
Описание:
Данные из текущего триггера.
Параметры: —
Возвращаемое значение: —
Тип возвращаемого значения: —
Пример: —
Триггеры
Table beforeCreate
Условие запуска: Перед созданием строчки в таблице.
Данные на входе: args.data — данные для новой строчки.
Данные на выходе: —
Пример: —
Table afterCreate
Условие запуска: После создания строчки в таблице.
Данные на входе: args.data — данные новой строчки.
Данные на выходе: —
Пример: —
Table beforeEdit
Условие запуска: Перед редактированием строчки в таблице.
Данные на входе:
args.oldData— старые данные;args.changeData— изменяемые данные;args.data— изменяемые данные (устарело);id— id изменяемой строчки.
Данные на выходе: —
Пример: —
Table afterEdit
Условие запуска: После редактирования строчки в таблице.
Данные на входе:
args.oldData— старые данные строчки;args.newData— новые данные строчки;args.data— новые данные строчки (устарело);args.changeData— изменяемые данные.
Данные на выходе: —
Пример: —
Table beforeDelete
Не реализовано.
Table afterDelete
Не реализовано.
Пример:
Table filter
Условие запуска: При фильтрации данных у строчек.
Данные на входе:
args— массив данных строчек.
Данные на выходе: Должен вернуть измененный массив данных строчек.
Пример: —
Table queryFilter
Не реализовано.
Bot button trigger
Условие запуска: Перед созданием строчки в таблице.
Данные на входе: args.data — данные для новой строчки.
args.botId— id бота; id бота;tableId— id таблицы, если страница бота с кнопкой связана с таблицей;args.botItemTable— метаданные таблицы, если страница бота с кнопкой связана с таблицей;args.rowId— id строчки таблицы, если страница бота с кнопкой связана с таблицей;args.data— дополнительные данные, которые передаются в кнопку.
Данные на выходе: —
Пример: —