Задача [API26]: API для получения фильтров документов

Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для получения фильтров документов.

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

Метод, возвращающий фильтры для документов

URL метода: rest/api/docflow/doc/documents_filters. Типа запроса: GET.

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

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

Примечания:

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

Метод возвращает json со следующими полями:

Примечание: начиная с четвертого уровня новые параметры не добавляются.

Метод, возвращающий избранные фильтры для документов

URL метода: rest/api/docflow/doc/favorite_doc_filters. Типа запроса: GET.

Метод не принимает никакие параметры.

Метод возвращает json со следующими полями:

Примеры возвращаемых массивов

[
    {
        "name": "Журналы",
        "filterType": "REGISTER_FILTER",
        "count": "17",
        "hasChildren": "true"
    },
    {
        "name": "Дела",
        "filterType": "DOCFILE_FILTER",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Все",
        "filterType": "ALL_USER_DOCUMENTS",
        "count": "328",
        "hasChildren": "true"
    }
]
[
    {
        "name": "Внутренние документы",
        "filterType": "REGISTER_FILTER",
        "objectID": "internal_docs",
        "count": "2",
        "hasChildren": "true"
    },
    {
        "name": "Входящие документы",
        "filterType": "REGISTER_FILTER",
        "objectID": "in_docs",
        "count": "12",
        "hasChildren": "true"
    },
    {
        "name": "Договоры",
        "filterType": "REGISTER_FILTER",
        "objectID": "2f74f563-7366-4d60-a86d-15843108f256",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Журнал с авторегистрацией",
        "filterType": "REGISTER_FILTER",
        "objectID": "337958a5-5dd2-496b-b18f-72f1d0d673d8",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Заявление",
        "filterType": "REGISTER_FILTER",
        "objectID": "19b6232d-5ed7-45d6-a113-f86d143e5274",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Исходящие документы",
        "filterType": "REGISTER_FILTER",
        "objectID": "out_docs",
        "count": "2",
        "hasChildren": "true"
    },
    {
        "name": "тестЖурнал",
        "filterType": "REGISTER_FILTER",
        "objectID": "d4bdb344-2037-4aa7-8878-c6db2790d6cb",
        "count": "1",
        "hasChildren": "true"
    }
]
[
    {
        "name": "On registration",
        "filterType": "REGISTER_FILTER",
        "filterID": "3e54a5c4-603a-418f-bb43-c34117b7f855",
        "objectID": "internal_docs",
        "count": "1",
        "hasChildren": "true"
    },
    {
        "name": "In progress",
        "filterType": "REGISTER_FILTER",
        "filterID": "03f46a0c-bafb-4aa0-b4dd-708be03f5c35",
        "objectID": "internal_docs",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Expired",
        "filterType": "REGISTER_FILTER",
        "filterID": "8dfdd85d-3c55-47fc-8ab6-d76387e359a0",
        "objectID": "internal_docs",
        "count": "0",
        "hasChildren": "true"
    },
    {
        "name": "Finished",
        "filterType": "REGISTER_FILTER",
        "filterID": "a3834317-0fd4-4887-8143-e9e6ac72acbe",
        "objectID": "internal_docs",
        "count": "1",
        "hasChildren": "true"
    },
    {
        "name": "On control",
        "filterType": "REGISTER_FILTER",
        "filterID": "83fa806b-ce56-486f-95fe-59e03e3b99ca",
        "objectID": "internal_docs",
        "count": "0",
        "hasChildren": "true"
    }
]
[
    {
        "name": "Фильтр четвертого уровня 1",
        "filterType": "REGISTER_FILTER",
        "filterID": "8e0b82ff-7832-4e7b-adbe-6b495fe8f617",
        "objectID": "internal_docs",
        "count": "1",
        "hasChildren": "false"
    },
    {
        "name": "Фильтр четвертого уровня 2",
        "filterType": "REGISTER_FILTER",
        "filterID": "e5c62d5e-df03-43cc-8899-c1a91855f432",
        "objectID": "internal_docs",
        "count": "1",
        "hasChildren": "false"
    }
]
[
    {
        "name": "О боже какой фильтр",
        "filterID": "e9bf8e89-6d51-46be-946c-4d4372b5d0cf",
        "filterType": "USER_OWN_DOCUMENTS"
    },
    {
        "name": "Я хочу от тебя дочерних",
        "filterID": "c04394f0-4ea3-4946-a74e-74637affecca",
        "filterType": "USER_OWN_DOCUMENTS"
    },
    {
        "name": "Журналы",
        "filterType": "REGISTER_FILTER"
    },
    {
        "name": "Фильтр четвертого уровня 1",
        "filterID": "8e0b82ff-7832-4e7b-adbe-6b495fe8f617",
        "filterType": "REGISTER_FILTER"
    },
    {
        "name": "Отправленные",
        "filterType": "USER_SENT_DOCUMENTS"
    },
    {
        "name": "Все",
        "filterType": "ALL_USER_DOCUMENTS"
    },
    {
        "name": "Исходящие документы",
        "filterType": "REGISTER_FILTER"
    }
]

Рисунок 150. Внешний вид корневых фильтров в ARTA Synergy

Внешний вид корневых фильтров в ARTA Synergy

Рисунок 151. Внешний вид фильтров второго уровня в ARTA Synergy

Внешний вид фильтров второго уровня в ARTA Synergy

Рисунок 152. Внешний вид фильтров третьего уровня в ARTA Synergy

Внешний вид фильтров третьего уровня в ARTA Synergy

Рисунок 153. Внешний вид фильтров четвертого уровня в ARTA Synergy

Внешний вид фильтров четвертого уровня в ARTA Synergy

Рисунок 154. Внешний вид избранных фильтров в ARTA Synergy

Внешний вид избранных фильтров в ARTA Synergy