ПланФикс API: Задачи
Список функций для управления задачами:
- task.add / Добавление задачи
- task.update / Обновление задачи
- task.get / Получение карточки задачи
- task.getList / Список задач
- task.accept / Принять задачу
- task.reject / Отклонить задачу
- task.changeExpectDate / Изменить дату выполнения задачи
- task.changeStatus / Изменить статус задачи
- task.changeWorkers / Изменить (добавить/удалить) исполнителей
task.get Получение карточки задачи
Запрос на получение:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.get">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<id></id>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
<name></name>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
<title></title>
</project>
<!-- Контрагент -->
<client>
<id></id>
<name></name>
</client>
<beginDateTime><!-- Время создания задачи --></beginDateTime>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- Сквозной номер -->
<general></general>
<isOverdued><!-- Задача не выполнена в срок --></isOverdued>
<isCloseToDeadline><!-- Задача близка к дедлайну --></isCloseToDeadline>
<isNotAcceptedInTime><!-- Задача не принята вовремя --></isNotAcceptedInTime>
<!-- Помещена в избранные -->
<starred>{true|false}</starred>
</task>
</response>
task.getList Список задач
Получение списка задач:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.getList">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<!-- список какого пользователя мы хотим посмотреть -->
<login>
<id></id>
</login>
<target>
Входящие/исходящие/Все
</target>
<!-- фильтр по проекту, не обязательное поле -->
<project>
<id></id>
</project>
<sort></sort>
<status><!-- смотри константы --></status>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<filter></filter>
</request>
Параметр filter может принимать следующие значения: ACTIVE (активные задачи), OVERDUE (просроченные задачи), MY (мои задачи). Значение параметра может представлять комбинацию допустимых значений, например:
<filter>ACTIVE MY</filter>
Значения параметра target:
- all - все
- in - входящие, значение по умолчанию
- out - исходящие
Значения параметра sort смотри в Типы сортировок
Результатом выполнения функции является следующий ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<tasks count="размер списка">
<task>
<id></id>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
<name></name>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
<title></title>
</project>
<!-- Контрагент -->
<client>
<id></id>
<name></name>
</client>
<beginDateTime><!-- Время создания задачи --></beginDateTime>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- Сквозной номер -->
<general></general>
<isOverdued><!-- Задача не выполнена в срок --></isOverdued>
<isCloseToDeadline><!-- Задача близка к дедлайну --></isCloseToDeadline>
<isNotAcceptedInTime><!-- Задача не принята вовремя --></isNotAcceptedInTime>
<!-- Помещена в избранные -->
<starred>{true|false}</starred>
<!-- исполнители -->
<workers>
<users>
<user>
<id></id>
<name></name>
</user>
<user>
<id></id>
<name></name>
</user>
<!-- ... -->
</users>
<groups>
<group>
<id></id>
<name></name>
</group>
<group>
<id></id>
<name></name>
</group>
<!-- ... -->
</groups>
</workers>
</task>
<!-- ... -->
</tasks>
</response>
task.accept Принять задачу
Для дальнейшей работы с задачей, пользователь должен принять задачу. Вызов функции:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.accept">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
</request>
Результатом корректного выполнения запроса будет:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.reject Отклонить задачу
Для отклонения задачи, необходимо вызвать следующую функцию:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.reject">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
<reason>причина по которой отклоняется задача,обязательное поле, не может быть пустым</reason>
</request>
Результатом удачного выполнения функции будет следующий ответ?
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.changeExpectDate Изменить дату выполнения задачи
Если пользователь по какой-то причине не может выполнить в установленный срок задачу, он может перенести время выполнения её.
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
<expectDate></expectDate>
</request>
При успешном выполнении получим следующий ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
<endTime></endTime>
</task>
</response>
Если в ответе отсутствует параметр endTime - это говорит о том, что был послан запрос постановщику с предложением о смене даты.
task.changeStatus Изменить статус задачи
Изменение статуса:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id><!-- идентификатор задачи --></id>
</task>
<status></status>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.changeWorkers Изменить (добавить/удалить) исполнителей
Запрос на изменение исполнителей.
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeWorkers">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id></id>
</task>
<workers>
<users>
<id></id>
<id></id>
<!-- ... -->
</users>
</workers>
</request>
Важно понимать, что необходимо посылать полный список исполнителей, сервер автоматически рассчитает кого необходимо удалить, а кого добавить, и кого необходимо оставить. Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
Константы
Срочность
- LOW - Не срочная
- AVERAGE - Обычная
- HIGH - Срочная
Статус
- DRAFT - Черновик
- ACTIVE - Активный но еще не принятый
- ACCEPTED - Принятый
- COMPLETED - Завершенный
- DELAYED - Отложенный
- REJECTED - Отклоненный
- DONE - Выполненный
- CANCELED - Отмененный
Типы сортировок
- NUMBER_ASC - сортировка по номеру (возрастание)
- NUMBER_DESC - сортировка по номеру (убывание)
- IMPORTANCE_ASC - сортировка по приоритету (возрастание)
- IMPORTANCE_DESC - сортировка по приоритету (убывание)
- DEADLINE_ASC - сортировка по времени окончания (возрастание)
- DEADLINE_DESC - сортировка по времени окончания (убывание)
- TASKTITLE_ASC - сортировка по названию задачи (возрастание)
- TASKTITLE_DESC - сортировка по названию задачи (убывание)
- PROJECT_ASC - сортировка по названию проекта (возрастание)
- PROJECT_DESC - сортировка по названию проекта (убывание)
Ошибки
по ходу реализации раздел дополниться, сей час не понятен полный список возможных ошибок