Проекты¶
- Допустимые действия над проектом
- Действие над проектом
- Допустимые действия над списком проектов
- Проверка прав на создание нового проекта для текущего пользователя
- Карточка проекта
- Список полей проекта
- Конвертировать проект в задачу
- Создание проекта
- Редактирование проекта
- Список проектов
- Добавить проект в избранное
- Редактирование Аудиторов
- Редактирование Соисполнителей
Допустимые действия над проектом¶
URI: /BumsProjectApiV01/Project/availableActions.api|xml
Входные параметры¶
| Параметр | Тип | Описание | 
|---|---|---|
| Id | integer | ID проекта. Обязательный параметр | 
Выходные данные (массив с названиями допустимых действий)¶
| Параметр | Тип | |
| actions | array | 
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "params":
  {
    "Id":540
  },
  "actions":["act_renew"]
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <params>
    <id>540</id>
  </params>
  <actions>
    <item>act_renew</item>
  </actions>
</response>
</response>
Список возможных действий над проектом¶
- act_accept_work - постановщик принимает выполненный проект
- act_reject_work - постановщик отклоняет выполненный проект
- act_done - исполнитель заканчивает работу, проект условно завершен
- act_pause - временно приостановить выполнение проекта
- act_resume - продолжить выполнение приостановленного проекта
- act_cancel - отменить проект
- act_expire - провалить проект
- act_renew - открыть проект заново
- act_delete - удалить проект (доступно с версии 2011.03)
- act_edit - редактировать проект (доступно с версии 2011.03)
- act_convert - преобразовать проект в задачу
- act_create_task - создать подзадачу
- act_create_subproject - создать подпроект
Действие над проектом¶
URI: /BumsProjectApiV01/Project/action.api|xml
Входные параметры¶
| Имя поля | Тип | Описание | 
|---|---|---|
| Id | integer | ID проекта | 
| Action | string | Действие | 
Выходные данные¶
Отсутствуют
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "params":
  {
    "Id":123,
    "Action":"act_accept_work"
  }
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <params>
    <id>123</id>
    <action>act_accept_work</action>
  </params>
</response>
Допустимые действия над списком проектов¶
URI: /BumsProjectApiV01/Project/availableActionsForList.api|xml
Входные параметры¶
| Параметр | Тип | Описание | 
|---|---|---|
| Ids | array | Массив идентификаторов, для которых нужно загрузить список действий | 
Выходные данные (массив с названиями допустимых действий)¶
| Параметр | Тип | |
| actions | array | 
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "params":
  {
    "Ids":[540, 541]
  },
  "actions":
  [
    {
      "Id": 540,
      "Actions":
      [
        "act_edit",
        "act_done"
      ]
    },
    {
      "Id": 541,
      "Actions":
      [
        "act_expire",
        "act_delete"
      ]
    }
  ]
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <params>
    <ids>
      <item>540</item>
      <item>541</item>
    </ids>
  </params>
  <actions>
    <item>
      <id>540</id>
      <actions>
        <item>act_edit</item>
        <item>act_done</item>
      </actions>
    </item>
    <item>
      <id>541</id>
      <actions>
        <item>act_expire</item>
        <item>act_delete</item>
      </actions>
    </item>
  </actions>
</response>
</response>
Список возможных действий над проектом¶
- act_accept_work - постановщик принимает выполненный проект
- act_reject_work - постановщик отклоняет выполненный проект
- act_done - исполнитель заканчивает работу, проект условно завершен
- act_pause - временно приостановить выполнение проекта
- act_resume - продолжить выполнение приостановленного проекта
- act_cancel - отменить проект
- act_expire - провалить проект
- act_renew - открыть проект заново
- act_delete - удалить проект (доступно с версии 2011.03)
- act_edit - редактировать проект (доступно с версии 2011.03)
- act_convert - преобразовать проект в задачу
- act_create_task - создать подзадачу
- act_create_subproject - создать подпроект
Проверка прав на создание нового проекта для текущего пользователя¶
URI: /BumsProjectApiV01/Project/canCreate.api|xml
Входные параметры¶
Нет входных данных
Выходные данные¶
| Поле | Тип | Описание | 
|---|---|---|
| CanCreate | bool | Можно ли создавать новые проекты | 
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "data":
  {
    "CanCreate": 1
  }
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <data>
    <can_create>1</can_create>
  </data>
</response>
Карточка проекта¶
URI: /BumsProjectApiV01/Project/card.api|xml
Входные параметры¶
| Имя поля | Тип | Описание | Примечание | 
|---|---|---|---|
| Id | integer | ID проекта | Обязательный параметр | 
Выходные данные (поля проекта)¶
| Имя поля | Тип | Описание | 
|---|---|---|
| Id | integer | ID проекта | 
| Name | string | Название | 
| Statement | string | Цели проекта (описание) | 
| Status | string | Статус | 
| PlannedWork | integer | Количество минут запланированной работы | 
| ActualWork | integer | Отработанное время в минутах | 
| ActualWorkWithSubTasks | integer | Аналогично ActualWork, но с учетом отработанного времени во всех подзадачах | 
| Completed | integer | Процент завершения проекта | 
| Deadline | datetime | Дедлайн | 
| DeadlineType | string | Тип дедлайна | 
| Owner | object | Постановщик (сотрудник) | 
| Owner.Id | integer | Идентификатор | 
| Owner.Name | string | Имя | 
| Owner.Avatar | string | Относительная ссылка на аватар | 
| Responsible | object | Ответственный (сотрудник) | 
| Responsible.Id | integer | Идентификатор | 
| Responsible.Name | string | Имя | 
| Responsible.Avatar | string | Относительная ссылка на аватар | 
| Executors | object[] | Соисполнители (сотрудники) | 
| Executors[].Id | integer | Идентификатор | 
| Executors[].Name | string | Имя | 
| Executors[].Avatar | string | Относительная ссылка на аватар | 
| Auditors | object[] | Аудиторы (сотрудники) | 
| Auditors[].Id | integer | Идентификатор | 
| Auditors[].Name | string | Имя | 
| Auditors[].Avatar | string | Относительная ссылка на аватар | 
| SuperProject | object | Надпроект | 
| SuperProject.Id | integer | Идентификатор | 
| SuperProject.Name | string | Название | 
| Favorite | bool | Является ли проект избранным для текущего пользователя | 
| TimeCreated | datetime | Время создания | 
| TimeUpdated | datetime | Время последней модификации | 
| Customer | object | Заказчик | 
| Customer.Id | integer | Идентификатор | 
| Customer.Name | string | Имя (название) | 
| Customer.Type | object | Тип | 
| Customer.Type.Id | string | Идентификатор типа (1000001, 1) | 
| Customer.Type.Name | string | Название типа (Сотрудник, Клиент) | 
| Attaches | object[] | Прикрепленные к проекту файлы | 
| Attaches[].Name | string | Пользовательское имя файла | 
| Attaches[].Url | string | Ссылка для скачивания файла (без домена) | 
| Attaches[].FileName | string | Физическое имя файла | 
| Attaches[].TimeCreated | datetime | Дата-время добавления аттача | 
| Attaches[].Size | integer | Размер файла в байтах | 
| Activity | datetime | Дата и время последней активности по проекту | 
| IsOverdue | bool | Является ли проект просроченным | 
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "params":
  {
    "Id":841
  },
  "data":
  {
    "project":
    {
      "Id":841,
      "Name":"Test project",
      "Statement":"Task statement",
      "Status":"done",
      "Deadline":"2010-12-30 16:00:00",
      "DeadlineType":"medium",
      "Owner":
      {
        "Id":2,
        "Name":"Director"
      },
      "Responsible":
      {
        "Id":651,
        "Name":"Ivanov Ivan"
      },
      "Executors":
      [
        {
          "Id":44,
          "Name":"Sidorov Sidor"
        },
        {
          "Id":45,
          "Name":"VV"
        }
      ],
      "TimeCreated":"2007-12-13 12:24:12",
      "IsOverdue":false
    }
  }
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <params>
    <id>841</id>
  </params>
  <data>
    <project>
      <id>841</id>
      <name>Test project</name>
      <statement>Some project statement with "html special chars"</statement>
      <status>accepted</status>
      <deadline>2010-12-30 16:00:00</deadline>
      <deadline_type>medium</deadline_type>
      <owner>
        <id>2</id>
        <name>Director</name>
      </owner>
      <responsible>
        <id>651</id>
        <name>Ivanov Ivan</name>
      </responsible>
      <executors>
        <item>
          <id>44</id>
          <name>Sidorov Sidor</name>
        </item>
        <item>
          <id>45</id>
          <name>VV</name>
        </item>
      </executors>
      <time_created>2007-12-13 12:24:12</time_created>
      <is_overdue>false</is_overdue>
    </project>
  </data>
</response>
Список полей проекта¶
URI: /BumsProjectApiV01/Project/listFields.api|xml
Выходные параметры (массив полей проекта с типом и переводом поля)¶
| Поле | Тип | Описание | 
|---|---|---|
| Fields | array<object (Name, Translation, Type)> | Массив объектов, где каждый объект является определением поля, содержащим его имя тип и перевод. | 
Конвертировать проект в задачу¶
URI: /BumsProjectApiV01/Project/convert.api|xml
Входные параметры¶
| Параметр | Тип | Описание | |
| Id | integer | ID проекта. Обязательный параметр | 
Выходные данные (поля задачи)¶
| Поле | Тип | Описание | |
| Id | integer | ID задачи | 
Создание проекта¶
URI: /BumsProjectApiV01/Project/create.api|xml
Входные параметры¶
| Имя поля | Тип | Описание | Примечание | 
|---|---|---|---|
| Model[Name] | string | Название | Обязательное поле | 
| Model[Deadline] | datetime | Дедлайн (дата со временем) | |
| Model[DeadlineDate] | date | Дедлайн (только дата) | |
| Model[DeadlineType] | string | Тип дедлайна | |
| Model[Responsible] | integer | Код менеджера | Обязательное поле | 
| Model[Executors] | integer[] | Коды участников проекта | |
| Model[Auditors] | integer[] | Коды аудиторов | |
| [STRIKEOUT:Model[Severity]] | integer | Код важности | Параметр более не используется | 
| Model[SuperProject] | integer | Код надпроекта | |
| Model[Customer] | integer | Код заказчика | |
| Model[Statement] | string | Описание проекта | |
| Model[Start] | datetime | Старт проекта | |
| Model[Attaches][Add] | array | Массив приложенных файлов | Должен передаваться POST-запросом | 
| Model[Attaches][Add][0…n][Content] | string | Данные (контент) файла, закодированные с использованием MIME base64 | В устаревших версиях Мегаплана может действовать имя параметра Model[Attaches][Add][][Context] | 
| Model[Attaches][Add][0…n][Name] | string | Имя файла | Будет фигурировать при выводе проекта | 
Выходные данные¶
| Имя поля | Тип | Описание | 
|---|---|---|
| Id | integer | ID проекта | 
| Name | string | Название проекта | 
Отсутствие прав на создание проекта¶
У сотрудника может не быть прав на создание проекта. В этом случае команда вернет 403-ю ошибку и
следующий ответ:
{
  "status":
  {
    "code":"error",
    "message":"You can not create projects"
  }
}
Таким образом, эту команду можно использовать не только для создания проекта, но и для проверки наличия прав на создание проекта (например, чтобы решить, показывать в приложении кнопку «Создать проект» или нет).
Редактирование проекта¶
URI: /BumsProjectApiV01/Project/edit.api|xml
Входные параметры¶
| Имя поля | Тип | Описание | Примечание | 
|---|---|---|---|
| Id | integer | ID проекта | Обязательное поле | 
| Model[Name] | string | Название | |
| Model[Deadline] | datetime | Дедлайн (дата со временем) | |
| Model[DeadlineDate] | date | Дедлайн (только дата) | |
| Model[DeadlineType] | string | Тип дедлайна | |
| Model[Owner] | integer | Код постановщика | |
| Model[Responsible] | integer | Код менеджера | |
| Model[Executors] | integer[] | Коды участников проекта | |
| Model[Auditors] | integer[] | Коды аудиторов | |
| [STRIKEOUT:Model[Severity]] | integer | Код важности | Параметр более не используется | 
| Model[SuperProject] | integer | Код надпроекта | |
| Model[Customer] | integer | Код заказчика | |
| Model[Statement] | string | Описание проекта | |
| Model[Start] | datetime | Старт проекта | |
| Model[Attaches][Add] | array | Массив приложенных файлов | Должен передаваться POST-запросом | 
| Model[Attaches][Add][0…n][Content] | string | Данные (контент) файла, закодированные с использованием MIME base64 | В устаревших версиях Мегаплана может действовать имя параметра Model[Attaches][Add][][Context] | 
| Model[Attaches][Add][0…n][Name] | string | Имя файла | Будет фигурировать при выводе проекта | 
| Model[Attaches][Delete] | array | Массив из имен файлов для удаления (параметр FileName в карточке проекта) | 
Выходные данные¶
Отсутствуют
Список проектов¶
URI: /BumsProjectApiV01/Project/list.api|xml
| Имя поля | Тип | Описание | Примечание | 
|---|---|---|---|
| Folder | string | Папка (фильтр по ID текущего сотрудника) | Допустимые значения: 
 По умолчанию: all | 
| Status | string | Статус | Допустимые значения: 
 По умолчанию: any | 
| FavoritesOnly | integer | Только избранное | Допустимые значения: 0, 1 По умолчанию: 0 | 
| Search | string | Строка поиска | любая строка | 
| Detailed | bool | Нужно ли показывать в списке проектов все поля из карточки проекта | По умолчанию: false | 
| FilterId | string | Код фильтра | |
| SuperProjectId | integer | При передаче возвращаются только проекты, входящие в надпроект SuperProjectId | |
| OnlyActual | bool | Если true, то будут выводиться только незавершенные проекты | |
| Count | bool | Если true, то вместо списка будет выводиться только количесто проектов, удоволетворяющих условиям | |
| SortBy | string | Сортировка результата | Допустимые значения: 
 | 
| SortOrder | string | Сколько выбрать проектов (LIMIT) | Допустимые значения: 0, 1 
 По умолчанию: asc | 
| ShowAction | bool | Нужно ли показывать в списке возможные действия над проектом | |
| Limit | integer | Сколько выбрать проектов (LIMIT) | Целочисленное значение в диапазоне [1,100] По умолчанию: 50 | 
| Offset | integer | Начиная с какого выбирать проекты (OFFSET) | |
| TimeUpdated | string | Возвращать только те объекты, которые были изменены после указанный даты | Дата/время в одном из форматов ISO 8601 | 
Выходные данные (масив проектов с полями)¶
| Имя поля | Тип | Описание | 
|---|---|---|
| Id | integer | ID проекта | 
| Name | string | Название | 
| Status | string | Статус Возможные статусы проекта: 
 | 
| PlannedWork | integer | Количество запланированной работы в минутах | 
| ActualWorkWithSubTasks | integer | Аналогично ActualWork, но с учетом отработанного времени во всех подзадачах | 
| Completed | integer | Процент завершения проекта | 
| Deadline | datetime | Дедлайн | 
| Owner | object | Постановщик (сотрудник) | 
| Owner.Id | integer | Идентификатор | 
| Owner.Name | string | Имя | 
| Owner.Avatar | string | Относительная ссылка на аавтар | 
| Responsible | object | Ответственный (сотрудник) | 
| Responsible.Id | integer | Идентификатор | 
| Responsible.Name | string | Имя | 
| Responsible.Avatar | string | Относительная ссылка на аватар | 
| Executors | object[] | Соисполнители (сотрудники) | 
| Executors[].Id | integer | Идентификатор | 
| Executors[].Name | string | Имя | 
| Executors[].Avatar | string | Относительная ссылка на аватар | 
| Auditors | object[] | Аудиторы (сотрудники) | 
| Auditors[].Id | integer | Идентификатор | 
| Auditors[].Name | string | Имя | 
| Auditors[].Avatar | string | Относительная ссылка на аватар | 
| Start | datetime | Старт проекта | 
| Finish | datetime | Время фактического завершения задачи | 
| PlannedFinish | datetime | Дата запланированного финиша | 
| SuperProject | object | Надпроект | 
| SuperProject.Id | integer | Идентификатор | 
| SuperProject.Name | string | Название | 
| Favorite | integer | В избранном | 
| TimeCreated | datetime | Время создания | 
| TimeUpdated | datetime | Время последней модификации | 
| Tags | object[] | Тэги, привязанные к задаче | 
| Tags[].Id | integer | Идентификатор | 
| Tags[].Name | string | Название | 
| Activity | datetime | Дата и время последней активности по задаче | 
| AllAttaches | object[] | Прикрепленные к проекту файлы | 
| Attaches[].Name | string | Пользовательское имя файла | 
| Attaches[].Url | string | Ссылка для скачивания файла (без домена) | 
| Attaches[].FileName | string | Физическое имя файла | 
| Attaches[].TimeCreated | datetime | Дата-время добавления аттача | 
| Attaches[].Size | integer | Размер файла в байтах | 
| IsOverdue | bool | Является ли задача просроченной | 
Пример ответа в JSON-формате¶
{
  "status":
  {
    "code":"ok",
    "message":null
  },
  "params":
  {
    "Folder":"all",
    "Status":"any"
  },
  "data":
  {
    "projects":
    [
      {
        "Id":841,
        "Name":"Test project",
        "Status":"accepted",
        "Deadline":"2010-12-30 16:00:00",
        "Owner":
        {
          "Id":2,
          "Name":"Director"
        },
        "Responsible":
        {
          "Id":651,
          "Name":"Ivanov Ivan"
        },
        "Favorite":"",
        "TimeCreated":"2007-12-13 12:24:12",
        "IsOverdue":true
      },
      {
        "Id":1394,
        "Name":"Another project",
        "Status":"accepted",
        "Deadline":"",
        "Owner":
        {
          "Id":3,
          "Name":"Medvedev Dima"
        },
        "Responsible":
        {
          "Id":651,
          "Name":"Ivanov Ivan"
        },
        "Severity":
        {
          "Id":3,
          "Name":"Hot"
        },
        "SuperProject":
        {
          "Id":1393,
          "Name":"Global project"
        },
        "Favorite":"1",
        "TimeCreated":"2009-08-17 13:27:28",
        "IsOverdue":false
      }
    ]
  }
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>ok</code>
    <message></message>
  </status>
  <params>
    <folder>all</folder>
    <status>any</status>
  </params>
  <data>
    <projects>
      <item>
        <id>841</id>
        <name>Test project</name>
        <status>accepted</status>
        <deadline>2010-12-30 16:00:00</deadline>
        <owner>
          <id>2</id>
          <name>Director</name>
        </owner>
        <responsible>
          <id>651</id>
          <name>Ivanov Ivan</name>
        </responsible>
        <time_created>2007-12-13 12:24:12</time_created>
        <is_overdue>true</is_overdue>
      </item>
      <item>
        <id>1394</id>
        <name>Another project</name>
        <status>accepted</status>
        <deadline></deadline>
        <owner>
          <id>3</id>
          <name>Medvedev Dima</name>
        </owner>
        <responsible>
          <id>651</id>
          <name>Ivanov Ivan</name>
        </responsible>
        <severity>
          <id>3</id>
          <name>Hot</name>
        </severity>
        <super_project>
          <id>1393</id>
          <name>Global project</name>
        </super_project>
        <favorite>1</favorite>
        <time_created>2009-08-17 13:27:28</time_created>
        <is_overdue>true</is_overdue>
      </item>
    </projects>
  </data>
</response>
Добавить проект в избранное¶
URI: /BumsProjectApiV01/Project/markAsFavorite.api|xml
Для добавления и удаления из избранного предпочтительно пользоваться командами из раздела Избранное.
Входные параметры¶
| Параметр | Тип | Описание | |
| Id | integer | ID проекта. Обязательный параметр | |
| Value | integer | 1 (пометить как избранное), 0 (убрать из избранного) | 
Выходные данные¶
Отсутствуют