API REST v2.0

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

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

просмотр истории страницы
В примере: массовое сторнирование по всем неудаленным абонентам за период с 1 января 2017 по 1 января 2018 года
{code}sqlexec "set heading off; select id from abonents where is_folder=0 and deleted=0" | sed '/^$/d' | sed 's/ *//g' | while read -r abonid; do curl -XPOST -d 'method1=objects.get&arg1={"id":"'$abonid'"}&method2=storno_credit&arg2={"sdate":"2017-01-01", "edate":"2018-01-01"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done {code}
# h5. Сторнирование услуги id 230, дата списаний c 2023-08-17 по 2023-08-17, договор BILL00001.
{code}
curl -XPOST -d 'method1=objects.get&arg1={"contract_number":"BILL00001"}&method2=storno_credit&arg2={"sdate":"2023-08-17", "edate":"2023-08-17", "usluga_id": 230}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}
# h5. Рассылка сообщения по населенному пункту.
{code}sqlexec "set heading off; select id from abonents where home_id in (select id from homes where CITY='Тихорецк') and deleted=0 and is_folder=0"| sed '/^$/d' | sed 's/ *//g' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=send_message&arg2={"tmpl_id": "6", "send_date": "2019-04-08 12:30:00" }' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{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" обязателен.
curl -XPOST -d 'method1=objects.filter&arg1={"abonent_id":"1242","change_balance_time__range":["2018-10-01", "2018-11-01"],"storno":0}' http://169.254.80.82:8082/rest_api/v2/ArchAccountStack/ -D -
{code}
# h5. Изменить валюту счета
{code}
curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":"id абоненета"}&method2=set&arg2={"currency":"id валюты"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -
{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. Услуги
# h5. Информация об услугах тарифа с id 1128(название, цена, комментарий)
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/TarifUsersUsluga/' -d 'method1=objects.filter&arg1={"tarif_id":1128}&fields=["usluga__name","usluga__comments",usluga__summa]'{code}
# h5. Установить тарифам из выборки функции "Всегда переопределять при переходе на этот тариф:" и "Порог включения:" = 200
{code}
sqlexec "set list on; select id from tarif where id!=1 and id!=-170000" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"allways_apply":1, "allow_limit":200}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Tarif/ -D -; done
{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. Отладка