Задача [API89]: Расширенный метод получения записей реестра

Формулировка проблемы: сейчас при получении записи реестров нет возможности поиска записей по различным условиям (с использованием нескольких условий, с использованием разных логических операций).

Решение: необходимо реализовать API методы, которые позволяют получить записи реестра с расширенными возможностями поиска.

Метод №1:

URL метода: rest/api/registry/data_ext

Тип запроса: GET.

Метод №2 (для передачи данных большего размера):

URL метода: rest/api/registry/data_ext_post

Тип запроса: POST.

Описание метода (для обоих):

Метод принимает следующие входные параметры:

Метод возвращает записи реестра, которые соответствуют указанным условиям, с данными или без.

При значении параметра loadData равному true, метод возвращает объект JSON, состоящий из следующих полей:

При значении параметра loadData равному false, метод возвращает объект JSON, состоящий из следующих полей:

Пример запроса всех записей реестра, в которых значение числового поля numberField1 > 200 И значение компонента listBox = 1:

rest/api/registry/data_ext?registryID=0454848c-683d-40bb-8d92-729341823dcf&pageNumber=0&countInPart=15&loadData=true&field=numberField1&condition=MORE&key=200&field=listBox&condition=CONTAINS&key=1&term=and

Пример запроса всех записей реестра, в которых значение числового поля numberField1 > 200 ИЛИ значение компонента listBox = 1:
rest/api/registry/data_ext?registryID=0454848c-683d-40bb-8d92-729341823dcf&pageNumber=0&countInPart=15&loadData=true&field=numberField1&condition=MORE&key=200&field=listBox&condition=CONTAINS&key=1&term=or

Пример запроса всех записей реестра, в которых (значение числового поля numberField1 > 200 И значение компонента listBox = 1) ИЛИ (значение числового поля numberField1 < 30):
rest/api/registry/data_ext?registryID=0454848c-683d-40bb-8d92-729341823dcf&pageNumber=0&countInPart=15&loadData=true&groupTerm=or&field=numberField1&condition=MORE&key=200&field=listBox&condition=CONTAINS&key=1&term=and&field1=numberField1&condition1=LESS&key1=30

Пример возвращаемого объекта при loadData=true:


{
    "result": [
                {
                  "registryID": "014a88d2-6d86-4974-bb6f-97dc14b6d6fd",
                  "dataUUID": "8862e0fb-d334-462b-a8e8-e83b4f4e8f58",
                  "documentID": "c56b2970-d3d8-11e6-833d-001ef892a4ee",
                  "fieldValue": {
                        "cmp-2u3uie": null,
                        "number": "",
                        "start_date": "2017-01-20",
                        "finish_date": "2017-01-26"
                  },
                  "status": "STATE_NOT_FINISHED",
                  "state": 1
                },
                {
                  "registryID": "014a88d2-6d86-4974-bb6f-97dc14b6d6fd",
                  "dataUUID": "0112b29b-95ad-45fd-b5c3-317613b3ab46",
                  "documentID": "ba4b6a00-d3d8-11e6-833d-001ef892a4ee",
                  "fieldValue": {
                  "cmp-2u3uie": null,
                  "number": ""
                },
                  "status": "STATE_UNSUCCESSFUL",
                  "state": 3
                }
              ],
    "recordsCount": 2
}        

Пример возвращаемого объекта при loadData=false:

{
  "data": [
    {
      "dataUUID": "8862e0fb-d334-462b-a8e8-e83b4f4e8f58",
      "documentID": "c56b2970-d3d8-11e6-833d-001ef892a4ee"
    },
    {
      "dataUUID": "0112b29b-95ad-45fd-b5c3-317613b3ab46",
      "documentID": "ba4b6a00-d3d8-11e6-833d-001ef892a4ee"
    }
    ],
  "count": 35
}