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

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

Решение: необходимо реализовать API метод, который будет возвращать список реестров и групп в виде дерева.

Для выполнения API метода необходимо авторизоваться под пользователем, для которого требуется получение списка реестров.

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

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

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

Метод возвращает группы реестров и реестры в виде дерева (в соответствии с навигатором), а также список прав пользователя на данные реестры. При указании определенной группы, возвращаются группы и реестры в виде дерева, входящие в данную группу. При этом те реестры, которые в навигаторе не отображаются, не должны возвращаться (реестры без права просмотра списка).

Метод возвращает массив JSON, состоящий из следующих полей:

для группы реестров:

для реестрa:

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

rest/api/registry/list?regGroupID=d8773631-9cbb-4c5f-b3bc-561d95a107a6

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

[
 {  
    "regGroupID" : "8862e0fb-d334-462b-a8e8-e83b4f4e8f58",
    "regGroupName" : "Сервисы ДРТ",
    "consistOf":
    [    
        {
            "registryID" : "c56b2970-d3d8-11e6-833d-001ef892a4ee",
            "registryName" : "Feature Requests",
            "registryCode" : "Feature_Requests",
            "rights" : ["rr_create", "rr_list", "rr_read", "rr_edit", "rr_modify", "rr_delete"]
        },
        {
            "registryID" : "0112b29b-95ad-45fd-b5c3-317613b3ab46",
            "registryName" : "Заявки в ДРТ",
            "registryCode" : "Заявки_в_ДРТ",
            "rights" : ["rr_create", "rr_list", "rr_read", "rr_edit"]
        }
          
    ]
 },
 {
    "regGroupID" : "4d8db8c0-d340-11e6-8212-001ef892a4ee",
    "regGroupName" : "Приказы",
    "consistOf":
    [
        {
            "regGroupID" : "77c72a08-9851-4963-b36c-bee7fcf39b8f",
            "regGroupName" : "Приказы по отпускам",
            "consistOf":
            [
                {
                    "registryID" : "a6598ca6-ab62-4187-964e-576a2c7173fe",
                    "registryName" : "Приказ о трудовом отпуске",
                    "registryCode" : "prikaz_o_trudovom_otpuske",
                    "rights" : ["rr_create", "rr_list", "rr_read", "rr_edit", "rr_delete"]
                } 
                
            ]
        },
        {
            "regGroupID" : "4cfb3cc0-d340-11e6-8212-001ef892a4ee",
            "regGroupName" : "Приказы по приему на работу",
            "consistOf":
            [
                {
                    "registryID" : "032af000-d30d-11e6-833d-001ef892a4e",
                    "registryName" : "Приказ о приеме на работу (ЦА)",
                    "registryCode" : "prikaz_o_prieme_na_rabotu_CA",
                    "rights" : ["rr_create", "rr_list", "rr_read"]
                } 
                
            ]
        }  
    ]
 },
 {
    "registryID" : "ba9e43e4-3a95-474a-90a4-36ba79a7d9f9",
    "registryName" : "Уведомление о сроках итерации",
    "registryCode" : "uvedomlenie_o_srokah_iteracii",
    "rights" : ["rr_list", "rr_read"]
 }      
]

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

Альтернативный поток №1. Передан некорректный (несуществующий) параметр regGroupID. Сервер возвращает ошибку HTTP 400 c сообщением:

{
"errorCode" : 3,
"errorMessage" : "Передан некорректный параметр regGroupID"
}

Альтернативный поток №2. У пользователя отсутствуют права на переданную группу. Сервер возвращает ошибку HTTP 403 c сообщением:

{ 
"errorCode" : 2,
"errorMessage" : "У пользователя отсутствуют права на данную группу"
}