Создание пользователя

Описание: метод позволяет создать нового пользователя в системе КЦ

Method: POST

URL: /api/v1/users/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
login * string(25) Логин, для входа в систему для пользователя
roleId * integer(25) Указывает, какая роль будет присвоена пользователю в системе (роли должны быть предварительно созданы в админ панели) Как узнать значение roleId
firstName * string(25) Имя пользователя
lastName * string(25) Фамилия пользователя
password * string(25) пароль для логина в систему (должен содержать хотя бы одну большую букву, одну маленькую и одну цифру)
skype string(25) названия skype
email string(255) почтовый ящик оператора
phone string(255) контактный номер телефона оператора
internalPhoneId integer(25) ID внутреннего номера телефона, к которому должен быть привязан пользователь в системе Как узнать значение internalPhoneId
allowInternalPhoneEditing boolean Флаг который указывет на возможность редактирования внутреннего номера телефона пользователя. Возможные значения: "true", "false"
userpic string(255) Аватар пользователя. Закодированный текст base 64, картинки формата png, меньше 1 мб

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 201, и данными с идентификатором id созданого пользователя: { "userId": 1 }

Примеры неуспешного ответа (ошибок):
{"errorMessage":"login can't be empty"}
{"errorMessage":"firstName can't be empty"}
{"errorMessage":"lastName can't be empty"}
{"errorMessage":"Password must contain at least 1 lowercase and uppercase letter and at least 1 digit."}
{"errorMessage":"There is no pbxUserRole with such id"}
{"errorMessage":"InternalPhone with ID 1 is not found"}
{"errorMessage":"Incorrect email"}

 

 


Удаление пользователя

Описание: метод позволяет удалить пользователя из системы КЦ

Method: DELETE

URL: /api/v1/users/{userId}/exec.do

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{userId} * integer() Id пользователя в системе. Как узнать значение userId

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 OK, данными OK

Примеры неуспешного ответа (ошибок):
{"errorMessage":"User with ID 0 not found"}
{"errorMessage":"You can't manipulate another group properties"}
{"errorMessage":"User with ID 0 not found"}

 

 


Получение списка пользователей

Описание: метод возвращает список пользователей, зарегистрированных в системе

Method: GET

URL: /api/v1/users.do?limit={limitN}&offset={offsetN}

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{limitN} * integer() Число выборки количества записей в запросе
{offsetN} * integer() Порядок смещения при запросе от 0 к N

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 OK, и JSON масивом с даными пользователей

  [
    {
        "id": 1309,
        "login": "testcom_support",
        "password": null,
        "email": null,
        "firstName": "Testcom",
        "lastName": "Support",
        "skype": null,
        "phone": null,
        "roleId": 123,
        "userpic": null,
        "internalPhoneId": 819,
        "allowInternalPhoneEditing": false
    },
    {
        "id": 1427,
        "login": "study1_testcom",
        "password": null,
        "email": null,
        "firstName": "study1",
        "lastName": "study1",
        "skype": null,
        "phone": null,
        "roleId": 119,
        "userpic": null,
        "internalPhoneId": null,
        "allowInternalPhoneEditing": true
    }
  ]

 

 


Изменение статуса пользователя

Описание: метод для изменение текущего статуса пользователя в системе

Method: PUT

URL: /api/v1/users/{userLogin}/statuses.json

Данные запроса:

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{userLogin} * string() Логин пользователя
status * string() Названия статуса, в который нужно перевети пользователя. Возможные значения: "READY", "NOT_READY"
statusTypeId integer уникальный идентификатор подстатуса "NOT_READY". В других случаях игнорируется или не используется.

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 OK, и ответом OK

Примеры неуспешного ответа (ошибок): status 500
{ "errorMessage": "Only 'READY' and 'NOT_READY' statuses allowed" }
{"errorMessage":"Unknown statusType or statusType id:21 is not in the group list of the user: manager"}

 

 


Добавление пользователя в группу

Описание: метод для добавления существующего пользователя в группу

Method: POST

URL: /api/v1/groups/{groupId}/users/exec.do

Данные запроса:

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{groupId} * integer() ID группы, в которою нужно добавить пользователя Откуда взять значение {groupId}
userId * integer() ID пользователя в системе

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 201 Created, и ответом Created

Примеры неуспешного ответа (ошибок):
{"errorMessage":"User 1 is already in group 2"}
{"errorMessage":"User with ID 1 not found"}
{"errorMessage":"Group with ID 1 not found"}

 

 


Получить список всех пользователей, которые закреплены за определенной группой

Описание: метод позволяет получить список всех операторов, которые закреплены за определенной группой

Method: GET

URL: /api/v1/groups/{groupId}/users/all.json

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{groupId} * integer() ID группы Откуда взять значение {groupId}

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 OK, и ответом


      [
          {
              "user": {
                  "id": 1477,
                  "login": "matula5991",
                  "firstName": "matula",
                  "lastName": "matula"
              },
              "userGroupStatus": {
                  "priority": 0,
                  "active": true
              }
          },
          {
              "user": {
                  "id": 1309,
                  "login": "testcom_support",
                  "firstName": "Testcom",
                  "lastName": "Support"
              },
              "userGroupStatus": {
                  "priority": 10,
                  "active": true
              }
          }
      ]

    

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "group with id [8391] do not exist" }

 

 


Получить значение приоритета по определенному пользователю в заданной группе

Описание: метод позволяет получить самый высокий приоритет по задачам пользователя в группе

Method: GET

URL: /api/v1/groups/{groupId}/users/{userId}/status.json

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{groupId} * integer() ID группы Откуда взять значение {groupId}
{userId} * integer() ID пользователя в системе

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 OK, и ответом
{ "priority": 10, "active": true }

Примеры неуспешного ответа (ошибок):
{"errorMessage":"group with id [1] do not exist"}
{"errorMessage":"user with id [77777] do not exist"}

 

 


Изменение приоритета пользователя в группе

Описание: метод позволяет изменить приоритет для пользователя в группе на указанную задачу

Method: PUT

URL: /api/v1/groups/{groupId}/tasks/{taskId}/prioritypolicies/exec.do

Данные запроса:

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{groupId}* integer() ID группы, в которой нужно изменить приоритет пользователя Откуда взять значение {groupId}
{taskId} * integer() ID задачи, которая добавлена в группу, и для которой поставить приоритет пользователю Откуда взять значение {taskId}
userId * integer() ID пользователя в системе
priority * integer() Значение выставляемого приоритета. Значение может быть от -1 до N. (-1 исключает обработку задачи пользователем в группе). Чем выше число, тем выше приоритет у пользователя на задачу

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 ОК, и ответом OK

Примеры неуспешного ответа (ошибок):
{"errorMessage":"Group with ID 800 not found"}
{"errorMessage":"User with ID 5578 not found"}
{"errorMessage":"User with ID 3 not found within group 8"}
{"errorMessage":"Task with ID 800 is not found"}
{"errorMessage":"Task 7 is not found within group 8"}

 

 


Изменение многих приоритетов пользоватей в группе

Описание: метод позволяет изменить приоритеты для многих пользователей в группе на указанные задачи одним запросом

Method: PUT

URL: /api/v1/priorities/exec.do

Данные запроса:

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
groupId* integer() ID группы, в которой нужно изменить приоритет пользователя Откуда взять значение {groupId}
taskId* integer() ID задачи, которая добавлена в группу, и для которой поставить приоритет пользователю Откуда взять значение {taskId}
userId* integer() ID пользователя в системе
priority* integer() Значение выставляемого приоритета. Значение может быть от -1 до N. (-1 исключает обработку задачи пользователем в группе). Чем выше число, тем выше приоритет у пользователя на задачу

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 ОК, и ответом {}

Примеры неуспешного ответа (ошибок):
{ "errors": [ { "groupId": 839, "taskId": 2845, "userId": 139, "priority": 10, "errorMsg": "User with ID 139 not found within group 839" } ] }

 

 


Удаление пользователя из группы

Описание: метод позволяет удалить пользователя из группы

Method: DELETE

URL: /api/v1/groups/{groupId}/users/{userId}/exec.do

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
{groupId}* integer() ID группы из которой нужно удалить пользователя Откуда взять значение {groupId}
{userId}* integer() ID пользователя в системе

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 ОК, и ответом OK

Примеры неуспешного ответа (ошибок):
{"errorMessage":"User with ID 777 not found within group 88"}
{"errorMessage":"You can't manipulate another group properties"}
{"errorMessage":"User with ID 0 not found"}

 

 


Звонок клиенту на пользователя (click-to-call)

Описание: Запрос для совершения звонка к заданному клиенту. Для успешного совершения звонка, оператор не должен быть в одном из перечисленных статусов: OFFLINE, RESERVED, TALKING. Оператор должен иметь закрепленный за ним номер телефона в статусе REACHABLE

Method: POST

URL: /api/v1/calls/exec.do

Данные запроса:

Описание значений в запросе: * - обязательные параметры

Поле тип значения описание
userId * integer() ID пользователя в системе
phoneNumber * string() Номер телефона, на который нужно совершить звонок (должен быть в формате, поддерживаемом маршрутизацией звонков в КЦ)

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200 ОК, и ответом OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "Телефон не доступний " }