Задача [API69]: API полнотекстового поиска по файлам реестров с поддержкой поиска по метаданным и классификатору

Формулировка проблемы: необходима возможность полнотекстового поиска по файлам нескольких реестров с поддержкой поиска по метаданным и классификатору.

Решение: необходимо реализовать следующий метод:

URL метода: rest/api/registry/files/search.

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

Метод принимает следующие параметры (json):

В случае неуспешного выполнения возвращается json с полями:

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

Альтернативный поток №1. Не передан параметр registries. Сервер возвращает ошибку:

Не передан параметр registries

действие не выполняется.

Альтернативный поток №2. Передан некорректный (в т.ч. несуществующий и/или не по формату) параметр registries. Сервер возвращает ошибку:

Передан некорректный параметр registries

действие не выполняется.

Пример передаваемого массива

{
  "registries": ["7ce1feff-a3f0-4f4e-8bf6-59e37caf553f", "7b953be8-bddb-4ce4-bbfd-ae9548f69c7f"],
  "contains": "Документ",
  "notContains": "Работа",
  "sortType": 2,
  "modifiedFrom": "2016-01-01",
  "modifiedTo": "2016-01-31",
  "metadata": [
    {
    "name": "subject",
    "value": "Тема"
    },
    {
    "name": "date",
    "values": ["2015-01-01", "2015-01-31"]
    },
    {
    "name": "language",
    "value": "Русский"
    }
  ],
  "categories": [1, 2, 3],
  "firstResult": 1,
  "maxResult": 3
}

В случае успешного выполнения, метод возвращает следующие параметры (json):

Пример возвращаемого массива

{
  "count": 10,
  "list": [
    {
      "identifier": "3a170735-4fa3-4e2b-87ae-f346ace3487f",
      "documentID": "0f3a99ac-a712-40ea-98fe-3642af96b860",
      "aiType": "ai_image",
      "name": "Успешное проведение презентации.jpg",
      "path": "Хранилище/Успешное проведение презентации.jpg"
    },
    {
      "identifier": "bd523ca2-a2f5-4a8b-ace5-26b300628e32",
      "documentID": "212af63f-597b-41a8-bbaf-6987d84651ac",
      "aiType": "ai_text",
      "name": "Стратегическое планирование.doc",
      "path": "Хранилище/Стратегическое планирование.doc"
    },
    {
      "identifier": "d9fed65d-600f-4eae-bba8-78cbee46bc57",
      "documentID": "5156cafe-8fd4-4e39-bb56-4014f42353a5",
      "aiType": "ai_text",
      "name": "Отраслевая программа.pdf",
      "path": "Хранилище/Отраслевая программа.pdf"
    }
  ]
}