API REST v2.0

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (18)

просмотр истории страницы
sqlexec "set list on; select id from abonents where contract_number='TEST_API1'" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.create&arg1={"abonent_id":'$line', "login":"abonent2"}&method2=set_password&arg2={"psw":"1234","dontshow":false}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
{code}
# h5. Сделать приход 10 рублей абоненту с номером договора BILL0000021.
{code}curl -XPOST -d 'method1=objects.get&arg1={"contract_number": "BILL0000021"}&method2=add_payment&arg2={"SUM_IN": "10"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
{info}
В методе *add_payment* можно использовать любые поля из модели FinanceOperations.
{info}
# h5. Создать абонента ФИО abonent в директории с id 1 (Все), tarif_id 1 (Основной тариф) и балансом 10р
{code}curl -XPOST -d 'method1=objects.create&arg1={"name":"abonent", "parent_id":1, "tarif_id":1}&method2=add_payment&arg2={"SUM_IN": "10"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -{code}
# h5. Применить добровольную блокировку
{code}curl -XPOST -d 'method1=objects.get&arg1={"id":"12419"}&method2=set&arg2={"own_disabled_start":"2018-10-03","own_disabled_end":"2018-11-03"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -{code}
# h5. Снять добровольную блокировку, необходимо установить дату ончания ДБ "own_disabled_end" текущим днём
{code}curl -XPOST -d 'method1=objects.get&arg1={"id":"12419"}&method2=set&arg2={"own_disabled_end":"2024-09-16"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -{code}
# h5. Применить административную блокировку с комментарием "Блокировка" к абоненту c id 1607
{note}Если у абонента нет услуг, которые можно заблокировать - блокировка применена не будет\!{note}
# h5. Перерасчитать абонентов на тарифе с id 1405, начиная с выбранного периода (обязательно указывать первое число месяца\!)
{code}sqlexec "set list on; select id from abonents where tarif_id=1405" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"need_recalc":"2019-06-01"}&method3=save&arg3={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{code}
# h5. Перерасчитать абонента с удалением истории блокировок
Для перерасчёта с удалением истории блоировок необходимо отдельно удалить историю блокировок по абоненту, и далее запустить перерасчёт. Например, по абоненту с id *6034* за *сентябрь 2024*.
#* Удалите историю блокировок
{code}
sqlexec -l "select ID from abonents_block_history where abonent_id=6034 and B_DATE between '2024-09-01 00:00:00' and '2024-09-30 23:59:59'" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST "http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/" -d "method1=objects.get&arg1={\"id\":$line}&method2=delete&arg2={}" -D -; done
{code}
#* Запустите перерсчёт
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -d 'method1=objects.get&arg1={"id":"6034"}&method2=set&arg2={"need_recalc":"2024-09-01"}&method3=save&arg3={}'
{code}
# h5. Получение данных об операторе, обслуживающем абонента
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -d 'method1=objects.filter&arg1={"id":1111}&fields=["operator"]'{code}
curl -XPOST -d 'method1=objects.filter&arg1={"abonent":"1383", "attribute":"26"}' http://<ip-биллинга>:8082/rest_api/v2/AttributeValues/ -D -
{code}
# h5. Вывести значение и название всех реквизитов абонента с id 1606
{code}
curl -XPOST -d 'method1=objects.filter&arg1={"abonent":"1606"}&fields=["attribute__name", "attribute_value"]' http://169.254.80.82:8082/rest_api/v2/AttributeValues/ -D -
{code}
# h5. Добавить абоненту с id 100 атрибут, который имеет id 200 со значением 300
{code}
{code}
#!/bin/bash
# Определить список абонентов, у кого отсутствует нужный реквизит, в данном примере -332891 27 (исключим из отбора каталоги 2("Операторы"),244("Служебная группа"),4("Корзина"))
ab_id=$(sqlexec "set heading off; select a.id from attribute_values av left join abonents a on a.id=av.abonent_id where av.attribute_id !=-332891 and a.parent_id not in (2,244,4)" )
ab_id=$(sqlexec "set heading off; select distinct a.id from abonents a where a.id not in (select av.abonent_id from ATTRIBUTE_VALUES av where av.ATTRIBUTE_ID=27) and a.deleted=0 and a.parent_id not in (2,244,4) and A.IS_FOLDER = 0 and A.ID>0" )
#Вывести его на печать
echo $ab_id
#Каждому абоненту из списка добавить реквизит -332891 27
for i in $ab_id
do curl -XPOST -d 'method1=objects.create&arg1={"abonent_id":"'$i'","attribute_id":"-332891"}' 'method1=objects.create&arg1={"abonent_id":"'$i'","attribute_id":"27"}' http://169.254.80.82:8082/rest_api/v2/AttributeValues/ -D -;
#Пауза 2 сек. для обработки события в БД, можно исключить.
sleep 2
# h5. Удаление учетной записи.
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":6242}&method2=delete&arg2={"clean_links": true}'' http://169.254.80.82:8082/rest_api/v2/Users/ -D -
{code}
Аргумент "clean_links" обязателен.
sqlexec "set list on; select id from users where abonent_id in (SELECT abonent_id FROM GLN_RECURSIVE_ABONENTS_GET(1358))" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"nas_ip_lock":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
{code}
# h5. Отправить на оборудование актуальные состояния учетных записей:
{code}
curl -XPOST --url 'http://169.254.80.82:8082/rest_api/v2/Users/' --data 'method1=objects.all&arg1={}&method2=update&arg2={"modified":4}
{code}
h3. Блокировки абонента

sqlexec "set list on; select distinct id from abonents where parent_id=1408" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"next_auto_acount":"2021-05-18"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done
{code}
# h5. Установить наименование платёжной системы в операции op_id = 1234
{code}
curl -XPOST -d 'method1=objects.get&arg1={"op_id": 1234}&method2=set&arg2={"operator_name": "test"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/FinanceOperations/ -D -
{code}

h3. Услуги
curl -XPOST -d 'method1=objects.get&arg1={"id":'230999'}&method2=set&arg2={"end_time":"2023-06-07","manager_id": 33}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/UsersUsluga/ -D -;
{code}
# h5. Применить абоненту актуальную скорость из услуги. Если скорость изменилась -- будет сгенерировано событие *user_rate_set*, то есть скорость отправится на оборудование. При использовании флага *force* скорость отправится в любом случае.
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":4076}&method2=set_abonent_speed&arg2={"force":true}' http://169.254.80.82:8082/rest_api/v2/UsersUsluga/ -D -
{code}

h3. Дома
# h5. Отправить абоненту id 1313 сообщение по шаблону с id 1 методом sms-оповещения
{code}curl -XPOST -d 'method1=objects.create&arg1={"abonent_id": "1313", "admin_msg_id": "1", "ttype_id": "1"}' 'http://169.254.80.82:8082/rest_api/v2/MsgStack/' -D -{code}
# h5. Отправить всем заблокированным абонентам из группы id 1313 сообщение по шаблону с id 1
{code}sqlexec "set list on; select distinct a.id from ABONENTS a join ABONENTS_BLOCK b on a.id=b.abonent_id where a.parent_id=1313" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.create&arg1={"abonent_id": '$line', "admin_msg_id": "1", "ttype_id": "1"}' 'http://169.254.80.82:8082/rest_api/v2/MsgStack/' -D -; done{code}

h3. Отчёты
{code}

h3. Комментарии абонента

# h5. Добавить комментарий абоненту.
parent_id = id абонента.
text = текст комментария.
creator_id = id администратора, кто добавил комментарий.
{code}
curl -XPOST -d 'method1=objects.create&arg1={"parent_id":"14","text":"test","creator_id":"33"}' http://169.254.80.82:8082/rest_api/v2/AbonentsComments/ -D -
{code}

h3. Подсети

# h5. Создать подсеть - 10.0.0.0/8 с комментарием Test_subnet
{code}
curl -XPOST -d 'method1=objects.create&arg1={"ip" : "10.0.0.0", "mask": "255.0.0.0", "note": "Test_subnet"}' http://169.254.80.82:8082/rest_api/v2/Subnets/ -D -
{code}

h3. Прочее

curl -XPOST -d 'method1=objects.create&arg1={"subj":"Не работает интернет", "text":"Не работает интернет в течение часа", "abonent_id":1367}' http://169.254.80.82:8082/rest_api/v2/Hdsk/ -D -
{code}
# h5. Не учитывать регистр при поиске, на примере поиска по MAC (Добавляем функцию iexact)
{code}
curl -XPOST -d 'method1=objects.get&arg1={"mac__iexact":"00:1d:60:b6:59:c5"}&fields=["login","ip"]' http://169.254.80.82:8082/rest_api/v2/Users/ -D -
{code}


h2. Отладка