Задача [0451]: Доработка API asforms/search/advanced - указание статуса записи реестра

Формулировка проблемы: сейчас при использовании API метода asforms/search/advanced нет возможности задать статус записи реестра, чтобы производить поиск по записям с определенным статусом.

Связанная задача: API42

Решение: необходимо доработать API rest/api/asforms/search/advanced, добавив в его входные параметры массив registryRecordStatus, который может состоять из строк следующего вида:

Если данный массив не будет задан в запросе, то поиск будет производиться по всем записям реестра с вышеуказанными статусами (т.е. все записи реестра), и массив по умолчанию будет следующего вида:

registryRecordStatus:["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "STATE_UNSUCCESSFUL", "NO_ROUTE"]

Данный входной параметр используется только при условии searchInRegistry=true, т.е. когда поиск производится по записям реестра. При условии searchInRegistry=false данный параметр никак не влияет на результат поиска.

Javadoc

Тип запроса не изменяется.

В выходные параметры необходимо добавить следующий параметр:

Данный выходной параметр используется только при условии searchInRegistry=true, т.е когда поиск производится по записям реестра. При условии searchInRegistry=false данный параметр не возвращается.

Пример запроса:

{
    "query": "(field=? AND value LIKE ?) OR (field=? AND value=?)",
    "parameters":   [ "surname", "Ivanov%", "surname", "Petrov_" ],
    "startRecord":      0,
    "recordsCount":     50,
    "showDeleted":      "true",
    "searchInRegistry": "true",
    "registryRecordStatus": ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE"]
}

Пример возвращаемого ответа при searchInRegistry равен true:

[
    {
        "dataUUID":"08c164b0-e775-11e5-835c-525400bb7fc6",
        "documentID":"37c1fa90-eb62-11e5-835c-525400bb7fc6",
        "registryRecordStatus":"STATE_SUCCESSFUL"
    },
    {
        "dataUUID":"41fd8240-b822-11e5-8630-525400bb7fc6",
        "documentID":"7cd33a10-dedb-11e5-8c91-525400bb7fc6",
        "registryRecordStatus":"STATE_NOT_FINISHED"
    },
    {
        "dataUUID":"fd52s240-b822-11e5-8630-525400bb7fc6",
        "documentID":"a8ae8a30-c573-11e5-9020-525400bb7fc6",
        "registryRecordStatus":"STATE_SUCCESSFUL"
    },
    {
        "dataUUID":"8cab17d0-e685-11e5-835c-525400bb7fc6",
        "documentID":"bf2e9ff0-f7c5-11e5-835c-525400bb7fc6",
        "registryRecordStatus":"NO_ROUTE"
    }
]    

Альтернативные потоки событий

Добавить к существующим альтернативным потокам следующий поток:

Альтернативный поток №1. В массиве registryRecordStatus один или несколько из параметров не соответствует ни одному из возможных значений. Сервер возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode": "13",
    "errorMessage": "В массиве registryRecordStatus один или несколько из 
     параметров не соответствует ни одному из возможных значений"
}