Функции для работы с фактами обеспечивают управление базой фактов, позволяя сохранять, извлекать, удалять и очищать данные.
fact.save
Сохраняет факт в базе данных.
Сигнатура: fact.save(context: string, factName: string, factValue: mixed, botId: string = nil, clientId: string = nil)
Аргументы:
context
— строка, задающая контекст, в рамках которого существует факт.factName
— строка, задающая название факта.factValue
— значение, представляющее содержимое факта.botId
— идентификатор бота.clientId
— идентификатор клиента.Возвращаемое значение: Отсутствует.
Пример использования:
fact.save("место", "город", "Екатеринбург") // Факт доступен всем ботам компании
fact.save("место", "город", "Екатеринбург", nil, @clientId) // Факт привязан к клиенту
fact.save("место", "город", "Екатеринбург", @botId) // Факт привязан к боту
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Факт привязан к боту и клиенту
fact.load
Извлекает факт из базы данных.
Сигнатура: fact.load(context: string, factName: string, botId: string = nil, clientId: string = nil) -> mixed
Аргументы:
context
— строка, задающая контекст.factName
— строка, задающая название факта.botId
— идентификатор бота.clientId
— идентификатор клиента.Возвращаемое значение:
Содержимое факта.
Пример использования:
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняем факт
$city = fact.load("место", "город", @botId, @clientId) // Загружаем факт. $city содержит "Екатеринбург"
fact.delete
Удаляет факт из базы данных.
Сигнатура: fact.delete(context: string, factName: string, botId: string = nil, clientId: string = nil)
Аргументы:
context
— строка, задающая контекст.factName
— строка, задающая название факта.botId
— идентификатор бота.clientId
— идентификатор клиента.Возвращаемое значение: Отсутствует.
Пример использования:
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId) // Загружаем факт в переменную. $city содержит "Екатеринбург"
fact.delete("место", "город", @botId, @clientId) // Удаляем факт
$city = fact.load("место", "город", @botId, @clientId) // Пытаемся загрузить удаленный факт. Теперь $city содержит nil.
fact.clean
Функция fact.clean
удаляет все факты, соответствующие переданным аргументам. Важно учитывать, что каждый из аргументов работает независимо, то есть, если переданы botIds
, clientIds
, contexts
, factNames
или factValues
, то удаляются все факты, относящиеся к указанным параметрам, вне зависимости от значений других аргументов. Функция не поддерживает удаление на основе условий
Функция fact.clean
не позволяет задавать условия удаления. Она удаляет все факты, соответствующие переданным аргументам, без учета их пересечений. Перед использованием убедитесь, что удаляемые данные соответствуют вашим ожиданиям.
Сигнатура: fact.clean(contexts: string|List = nil, factNames: string|List = nil, factValues: any = nil, botIds: string|List = nil, clientIds: string|List = nil)
Аргументы:
contexts
— строка или список строк, определяющий контексты.factNames
— строка или список строк, задающий названия фактов.factValues
— значение или список значений фактов.botIds
— идентификатор или список идентификаторов ботов.clientIds
— идентификатор или список идентификаторов клиентов.Все аргументы являются опциональными. Если передан хотя бы один аргумент, удаляются все факты, соответствующие указанным значениям.
Возвращаемое значение: Отсутствует.
Примеры использования:
Удаление фактов с определенным контекстом (будут удалены для всех ботов и клиентов):
fact.clean("Контекст", ["fact1", "fact2"], [123, 456])
Удаление всех фактов, связанных с конкретным ботом (независимо от контекста и значений фактов):
fact.clean(nil, nil, nil, "fa5d268c-bcc9-4734-a10f-3dfd357764ac")
Удаление всех фактов, относящихся к конкретному клиенту
fact.clean(nil, nil, nil, nil, @clientId)
Удаление всех фактов, относящихся к конкретному боту и клиенту (каждому отдельно, а не их пересечению):
fact.clean(nil, nil, nil, "fa5d268c-bcc9-4734-a10f-3dfd357764ac", @clientId)
Этот вызов удалит все факты, относящиеся к переданному боту и переданному клиенту, даже если они не связаны между собой.