Шаблоны

Шаблоны

Шаблоны позволяют генерировать как однострочные команды, так и целые блоки текста. Эти механизмы являются основой построения взаимодействий SHM.

Синтаксис: {{ ОБЪЕКТ.ДАННЫЕ }}

Например, с помощью объекта user можно получить доступ к данным пользователя:

  • user.id - идентификатор пользователя
  • user.login - логин пользователя
  • user.balance - баланс пользователя

С помощью объекта us можно получить доступ к текущей услуге пользователя, и к ее данным:

  • us.id - идентификатор пользовательской услуги
  • us.expire - дата истечения услуги
  • us.service.cost - стоимость услуги
  • us.settings.КЛЮЧ - читаем произвольное поле (КЛЮЧ для примера) из данных услуги

Полный список объектов вы можете найти здесь: Объекты и функции

Пример выполнения shell команды:

add_new_vpn.sh --login=vpn_{{ us.id }} --password={{ us.gen_store_pass }}

В этом примере мы использовали:

  • Идентификатор пользовательской услуги us.id
  • специальную функцию us.gen_store_pass, которая сгенерирует случайный пароль и сохранит его в настройках пользовательской услуги (поле password).

Таким образом, на сервере будет выполнена такая команда (пример):

add_new_vpn.sh --login=vpn_1234 --password=abcdefjh

Пример выполнения shell скрипта:

Иногда удобнее выполнить целый скрипт, многострочный кусок кода. В таких случаях, можно создать отдельный шаблон, тогда в качестве команды мы можем указать следующий код:

bash <(curl -s -H 'session-id: {{ user.gen_session.id }}' {{ config.api.url }}/shm/v1/template/my_bash_script?format=plain)

Данная команда скачает шаблон с имененем my_bash_script на сервер и выполнит его.

Подробнее о создании и настройке шаблонов можно прочитать здесь и здесь

Условия и циклы

В шаблонах поддерживаются условия и циклы.

Примеры использования условий и циклов вы можете увидеть в примерах шаблонов, например здесь: Прогноз оплаты

Больше информации об условиях и циклах Вы можете узнать здесь

Объекты и функции

Метод Описание
user.id Идентификатор пользователя
user.login Логин пользователя
user.balance Баланс пользователя
user.credit Кредитный лимит пользователя
user.dogovor Договор пользователя
user.full_name ФИО пользователя
user.gen_session.id Специальная функция для генерации идентификатора сессии
user.pays.forecast Возвращает JSON прогноза оплат услуг
us.id Идентификатор пользовательской услуги
us.name Имя пользовательской услуги
us.created Дата создания пользовательской услуги
us.expire Дата истечения пользовательской услуги
us.status Статус пользовательской услуги
us.settings Параметры пользовательской услуги
us.parent. Ссылка на родительскую пользовательскую услугу
us.top_parent. Ссылка на самую верхнюю пользовательскую услугу
us.child_by_category( CATEGORY_NAME ). Ссылка на дочернюю услугу определенной категории
us.service.id Идентификатор услуги
us.service.name Название услуги
us.service.cost Базовая стоимость услуги
us.service.period_cost Период услуги
us.service.category Категория услуги
us.service.settings Параметры услуги
us.server.id Идентификатор сервера
us.server.name Имя сервера
us.server.host Host сервера
us.server.transport Транспорт сервера
us.server.settings. Параметры сервера
us.gen_store_pass Специальная функция для генерации пароля
toJson() Функция преобразования объекта в JSON
toQueryString() Функция преобразования объектов в Query string
Изменено 12.09.2023: Update _index.md (ca23e75)