Задача [API38]: API для редактирования доп. полей проекта

Формулировка проблемы: для реализации партнерами внешнего модуля интеграции требуется API для редактирования доп. полей проекта.

Связанные задачи: при реализации данной задачи необходимо учитывать реализацию задачи 2.45.PM3.

Решение: необходимо реализовать три новых метода API, позволяющих:

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

URL метода: rest/api/projects/get_af. Типа запроса: GET.

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

Метод возвращает два массива:

Массивы содержат элементы:

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

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

{
    "added": [
        {
            "name": "Номер итерации",
            "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
            "type": "NUMBER"
        },
        {
            "name": "Вид поставки",
            "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
            "type": "DICTIONARY"
        }
    ],
    "not_added": [
        {
            "name": "Бюджет",
            "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
            "type": "NUMBER"
        }
    ]
}

Метод, позволяющий добавлять доп. поля для проекта/портфеля

URL метода: rest/api/projects/add_af. Типа запроса: POST.

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

В случае успешного выполнения метода сервер вернет описание доп. полей для текущего проекта/портфеля (аналогичная строка, как и в методе rest/api/projects/get_af).

Примечание: необходимо вводить параметр fieldID даже тех полей, которые уже были добавлены, причем в нужном для пользователя порядке; иначе добавленные поля заменят существующие.

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

Метод, позволяющий удалять доп. поля для проекта/портфеля

URL метода: rest/api/projects/remove_af. Типа запроса: POST.

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

В случае успешного выполнения метода сервер вернет описание доп. полей для текущего проекта/портфеля (аналогичная строка, как и в методе rest/api/projects/get_af).

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