Шаблоны
Шаблоны
Шаблоны позволяют генерировать как однострочные команды, так и целые блоки текста. Эти механизмы являются основой построения взаимодействий 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 |