umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
131 lines (130 loc) • 4.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImageTokens = void 0;
const Model_1 = require("./db/Model");
const RULES = [
{
name: ['imageToken', 'path'],
type: 'string',
max: 150,
},
{
name: ['platform'],
type: 'string',
},
];
const ATTRS_LABEL = {
imageToken: 'ID',
path: 'Image path',
platform: 'Platform name',
};
/**
* Модель для управления изображениями в различных платформах.
* Предоставляет единый интерфейс для работы с изображениями в Алисе, ВКонтакте, Telegram, Марусе и тд.
*
* @extends Model<IImageModelState>
*
* @example
* // Создание и загрузка изображения для Telegram
* const image = new ImageTokens();
* sound.path = '/path/to/image.png';
* sound.platform = T_TELEGRAM;
* const token = await image.selectOne();
* if (token) {
* console.log('Токен для изображения успешно получен, токен:', token);
* } else {
* || Загрузка изображения
* }
*/
class ImageTokens extends Model_1.Model {
/**
* Название таблицы для хранения данных об изображениях.
*/
static TABLE_NAME = 'ImageTokens';
/**
* Описание изображения (Не обязательное поле).
* Используется как подпись к изображению в некоторых платформах.
*/
caption;
/**
* Конструктор класса ImageTokens.
* Предоставляет унифицированный интерфейс для хранения данных о загруженных изображений.
*/
constructor(appContext) {
super(appContext);
this.imageToken = null;
this.path = null;
this.platform = 'unknown';
this.caption = null;
}
getId() {
return 'imageToken';
}
/**
* Идентификатор/токен изображения.
* Уникальный идентификатор, используемый для ссылки на изображение в API платформы.
*/
get imageToken() {
return this.state.imageToken;
}
/**
* Устанавливает идентификатор/токен изображения.
* @param imageToken
*/
set imageToken(imageToken) {
this.state.imageToken = imageToken;
}
/**
* Расположение изображения (url/директория).
* Может быть URL-адресом изображения или путем к локальному файлу.
*/
get path() {
return this.state.path;
}
/**
* Устанавливает расположение изображения (url/директория).
* @param path
*/
set path(path) {
this.state.path = path;
}
/**
* Тип приложения, для которого загружена картинка.
*/
get platform() {
return this.state.platform;
}
/**
* Устанавливает тип приложения, для которого загружена картинка.
* @param platform
*/
set platform(platform) {
this.state.platform = platform;
}
/**
* Возвращает название таблицы/файла с данными.
*
* @return {string} Название таблицы для хранения данных об изображениях
*/
tableName() {
return ImageTokens.TABLE_NAME;
}
/**
* Определяет правила валидации для полей модели.
*
* @return {IModelRules[]} Массив правил валидации
*/
rules() {
return RULES;
}
/**
* Возвращает метки атрибутов таблицы.
* Используется для отображения понятных названий полей.
*
* @return {IImageModelState} Объект с метками атрибутов
*/
attributeLabels() {
return ATTRS_LABEL;
}
}
exports.ImageTokens = ImageTokens;