API REST v2.0

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

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

просмотр истории страницы
sqlexec "set list on; select id from abonents where parent_id=1354" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=set_object_status&arg2={"status_id": "26"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done
{code}
# h5. Установить абоненту с номером договора BILL0000014 статус с id 26
{code}
curl -XPOST -d 'method1=objects.get&arg1={"contract_number": "BILL0000014"}&method2=set_object_status&arg2={"status_id": "26"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -
{code}
# h5. Перенести всех неудаленных абонентов с тарифом, у которого id 1212 , в группу, у которой id 4911
{code}
sqlexec "set list on; select distinct id from abonents where tarif_id=1212 and is_folder=0 and deleted=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=move_to&arg2={"target":4911}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done
{code}
# h5. Удаление абонента с ID 1234
Удалить абонента в корзину
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
Удалить абонента в корзину и разорвать связть с подключенными услугами:
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={"clean_links": "UsersUsluga"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
Удалить абонента и разорвать все связи: с учетными записями, подключенными услугами и тд.
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={"clean_links": true}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
# h5. Удаление всех абонентов, которые не являются папками, из папки 5293
{code}sqlexec "set list on; select id from abonents where parent_id=5293 and is_folder=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=delete&arg2={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{code}
# h5. Изменить массово тариф всем абонентам с тарифа 1137 на тариф 1134
{code}sqlexec "set list on; select distinct id from abonents where tarif_id=1137" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"tarif_id":"1134"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done{code}
# h5. Применить административную блокировку с комментарием "Блокировка" к абонентам, у которых баланс меньше 0
{code}sqlexec "set list on; select distinct a.id from ABONENTS A left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID where A.IS_FOLDER=0 and a.deleted=0 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)<0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=block&arg2={"comment":"Блокировка"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done{code}
# h5. Убрать административную блокировку с абонента с id 1607 от имени администратора root
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"1607"}&method2=unblock&arg2={"admin_username":"root"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}
# h5. Убрать административную блокировку с абонентов, у которых баланс больше 0 от имени администратора root.
{code}
sqlexec "set list on; select distinct a.id from ABONENTS A left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID where A.IS_FOLDER=0 and a.deleted=0 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)>0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=unblock&arg2={"admin_username":"root"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done
{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. Применить административную блокировку с комментарием "Блокировка" к абоненту c id 1607
{note}Если у абонента нет услуг, которые можно заблокировать - блокировка применена не будет\!{note}
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"1607"}&method2=block&arg2={"comment":"Блокировка"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}

h3. Реквизиты
sqlexec "set list on; select id from abonents where company=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AttributeValues/' --data 'method1=objects.create&arg1={"abonent_id":'$line',"attribute_id":"200","attribute_value":"300"}'; done
{code}
# h5. Установить абоненту с номером договора BILL0000014 статус с id 26
{code}
curl -XPOST -d 'method1=objects.get&arg1={"contract_number": "BILL0000014"}&method2=set_object_status&arg2={"status_id": "26"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -
{code}

h3. Учётные записи
sqlexec "set list on; select id from abonents where parent_id=1316" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":'$line'}&method2=set&arg2={"limit_warning":"-12000"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -; done
{code}
# h5. Установить абоненту c id 2003 опцию "Не отключать при превышении порога"
{code}
curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":"2003"}&method2=set&arg2={"unlimited":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -
{code}
# h5. Установить всем абонентам с блокировкой по отрицательному балансу и балансом больше, чем 2, опцию "Не отключать при превышении порога"
{code}
sqlexec "set list on; select distinct a.id from ABONENTS A left join USERS U on A.ID = U.ABONENT_ID left join TARIF T on A.TARIF_ID=T.ID left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID left join users_usluga uu on uu.ABONENT_ID=A.ID left join usluga usl on usl.id=uu.USLUGA_ID left join abonents_block ab on ab.abonent_id=a.id where A.IS_FOLDER=0 and a.deleted=0 and ab.B_NEGBAL=1 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)>2" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":'$line'}&method2=set&arg2={"unlimited":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -; done
{code}
# h5. Выставить всем абонентам из папки с id 1433 порог отключения '-5000'
{code}sqlexec "set list on; select distinct id from abonents where parent_id=1433" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":'$line'}&method2=set&arg2={"limit":"-5000"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -; done{code}

h3. Финансовые операции
{code}

h3. Услуги



h3. Дома

{code}

h3. Личный кабинет

# h5. Подключить обещанный платеж из личного кабинета
## Авторизоваться, получив SUID
{code}curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=objects.get&arg1={"id":"12230"}&method2=get_or_create_dynamic_session&arg2={}'{code}
Пример ответа с SUID - 144997776676316356
{code}{"call": "/rest_api/v2/Users/", "result": {"pk": null, "model": "DynamicSessions", "fields": {"ttype": "None", "id": 12200, "suid": "144997776676316356"}}}{code}
SUID активен до следующей попытки авторизации в личном кабинете.
## Использовать SUID чтобы получить список обещанных платежей доступных абоненту для подключения из личного кабинета
{code}curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.get_promise_pay_list&arg1={"suid":"144997776676316356"}'{code}
## Подключить обещанный платеж, испоьзовав id обещанного платежа promise_pay_id.
{code}
curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.add_promise_pay&arg1={"suid":"193972505915951057","promise_pay_id": 144}'
{code}
# h5. Получить список услуг доступных абоненту для подключения в личном кабинете и подключить\отключить услугу
## Авторизоваться, получив ID авторизации
{code}curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=objects.get&arg1={"abonent_id":"12230"}&method2=get_or_create_dynamic_session&arg2={}'{code}
{note}{*}Работает только если у абонента одна учетная запись\!* Если больше одной - используйте ID учетной записи: {code}method1=objects.get&arg1={"id":"12345"}{code}{note}
## Получить список всех доступных для подключения и подключенных услуг
{code}curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.get_usluga_list&arg1={"suid":"144997776676316356","get_user_uslugas_all":1}'{code}
## Список всех подключенных услуг
{code}curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.get_usluga_list&arg1={"suid":"144997776676316356","get_setted":1}'{code}
Отфильтровать услуги определенного типа можно подобавив в запрос на втором или третьем шаге параметр system_type_id:
{code}0 Стандартный
1 Турбокнопка
3 Бонусный трафик
4 Форсаж
2 Подписка
6 Пакет МБ
5 IP телефония
7 IP телевидение
8 Абонентская плата
9 Трафик
10 Скидка\Наценка
11 Обещанный платеж
12 Пакет услуг
13 Системный {code}
## Подключить услугу
{code}
curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.set_user_usluga&arg1={"suid":"144997776676316356","usluga_id": 144}'
{code}
## Отключить услугу
{code}
curl "http://169.254.80.82:8082/rest_api/v2/Users/" -d 'method1=web_cabinet.remove_user_usluga&arg1={"suid":"144997776676316356","usluga_id": 144}'
{code}

h3. Прочее

# h5. Добавить всем абонентам с блокировкой по отрицательному балансу и балансом меньше, чем '-1' приход 600 рублей
{code}sqlexec "set list on; select distinct a.id from ABONENTS A left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID left join abonents_block ab on ab.abonent_id=a.id where A.IS_FOLDER=0 and a.deleted=0 and ab.B_NEGBAL=1 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)<-1" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=add_payment&arg2={"SUM_IN": "600"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{code}
# h5. Установить абоненту c id 2003 опцию "Не отключать при превышении порога"
{code}
curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":"2003"}&method2=set&arg2={"unlimited":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -
{code}
# h5. Установить всем абонентам с блокировкой по отрицательному балансу и балансом больше, чем 2, опцию "Не отключать при превышении порога"
{code}
sqlexec "set list on; select distinct a.id from ABONENTS A left join USERS U on A.ID = U.ABONENT_ID left join TARIF T on A.TARIF_ID=T.ID left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID left join users_usluga uu on uu.ABONENT_ID=A.ID left join usluga usl on usl.id=uu.USLUGA_ID left join abonents_block ab on ab.abonent_id=a.id where A.IS_FOLDER=0 and a.deleted=0 and ab.B_NEGBAL=1 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)>2" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":'$line'}&method2=set&arg2={"unlimited":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -; done
{code}
# h5. Перенести всех неудаленных абонентов с тарифом, у которого id 1212 , в группу, у которой id 4911
{code}
sqlexec "set list on; select distinct id from abonents where tarif_id=1212 and is_folder=0 and deleted=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=move_to&arg2={"target":4911}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done
{code}
# h5. Удаление абонента с ID 1234
Удалить абонента в корзину
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
Удалить абонента в корзину и разорвать связть с подключенными услугами:
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={"clean_links": "UsersUsluga"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
Удалить абонента и разорвать все связи: с учетными записями, подключенными услугами и тд.
{code}curl -XPOST -d 'method1=objects.get&arg1={"id": "1234"}&method2=delete&arg2={"clean_links": true}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -{code}
# h5. Удаление всех абонентов, которые не являются папками, из папки 5293
{code}sqlexec "set list on; select id from abonents where parent_id=5293 and is_folder=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id": '$line'}&method2=delete&arg2={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{code}
# h5. Выставить всем абонентам из папки с id 1433 порог отключения '-5000'
{code}sqlexec "set list on; select distinct id from abonents where parent_id=1433" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"account_id_abonents":'$line'}&method2=set&arg2={"limit":"-5000"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/AdminAccounts/ -D -; done{code}
# h5. Изменить массово тариф всем абонентам с тарифа 1137 на тариф 1134
{code}sqlexec "set list on; select distinct id from abonents where tarif_id=1137" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"tarif_id":"1134"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done{code}
# h5. Применить административную блокировку с комментарием "Блокировка" к абоненту c id 1607
{note}Если у абонента нет услуг, которые можно заблокировать - блокировка применена не будет\!{note}
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"1607"}&method2=block&arg2={"comment":"Блокировка"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}
# h5. Применить административную блокировку с комментарием "Блокировка" к абонентам, у которых баланс меньше 0
{code}sqlexec "set list on; select distinct a.id from ABONENTS A left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID where A.IS_FOLDER=0 and a.deleted=0 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)<0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=block&arg2={"comment":"Блокировка"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done{code}
# h5. Убрать административную блокировку с абонента с id 1607 от имени администратора root
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"1607"}&method2=unblock&arg2={"admin_username":"root"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}
# h5. Убрать административную блокировку с абонентов, у которых баланс больше 0 от имени администратора root.
{code}
sqlexec "set list on; select distinct a.id from ABONENTS A left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID where A.IS_FOLDER=0 and a.deleted=0 and round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2)>0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=unblock&arg2={"admin_username":"root"}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -; done
{code}
# h5. Получить детальную информацию по расходам абонента на интернет, телефонию и другие услуги за определённый период времени
## [Вкладка "Расход", таблица "Расход"|CarbonBilling:Счетчики услуг. Вкладка "Расход".]
## [Детализация списаний за период|CarbonBilling:Детализация расхода]
{code}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={"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. Подключить обещанный платёж
{code}curl -XPOST -d 'method1=objects.create&arg1={"abonent_id":12420,"usluga_id":240,"manager_id": 33}' http://169.254.80.82:8082/rest_api/v2/UsersUsluga/ -D -{code}
*manager_id* \- это ID администраторов, получить их список можно так:
{code}curl -XPOST -d 'method1=objects.filter' http://169.254.80.82:8082/rest_api/v2/DjangoUsersProfile/ -D -{code}

# h5. Подключить обещанный платеж из личного кабинета
## Авторизоваться, получив SUID