ПланФикс API: Проекты: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Строка 5: Строка 5:
<source lang="xml">
<source lang="xml">
<request method="project.add">
<request method="project.add">
<account><!-- имя аккаунта --></account>
  <account></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
  <sid></sid>
<project>
  <project>
<title><!-- Обязательное поле --></title>
    <title></title>
<description></description>
    <description></description>
<!-- Автор проекта -->
    <owner>
<owner>
      <id></id>
<id></id>
    </owner>
</owner>
    <client>
<!-- контрагент -->
      <id></id>
<client>
    </client>
<id></id>
    <status></status>
</client>
    <hidden>{true|false}</hidden>
<!-- статус проекта -->
    <hasEndDate>{true|false}</hasEndDate>
<status></status>
    <endDate></endDate>
<hidden>{true|false}</hidden><!-- Скрытый -->
  </project>
<HasEndDate>{true|false}</HasEndDate>
  <signature></signature>
<EndDate><!-- Дата завершения проекта --></EndDate>
</project>
</request>
</request>
</source>
</source>
Если не передать автора (owner), или указать id=0, то будет использован в качестве автора пользователь текущей сессии. Контрагент не обязательный параметр.
Если не передать автора (owner), или указать id=0, то будет использован в качестве автора пользователь текущей сессии. Контрагент не обязательный параметр.
{| class="wikitable" style="margin-top: 1em; width:100% "
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание
|-
|sid || string(32) ||ключ сесии || выдается в результате прохождения [[ПланФикс API:Аутентификация|аутентификации]]
|-
|title || string || Название проекта ||
|-
|description ||string  ||Описание проекта которое задает пользователь ||
|-
|owner.id || int || идентификатор пользователя, который будет считаться создателем проекта. || Данное поле не обязательно или можно указать значение 0. В этом случае будет назначен владельцем пользователь, от имени которого выполняется запрос (определяется по sid)
|-
|client.id || int || идентификатор контрагента || необязательное параметр
|-
|status ||enum || статус создаваемого проекта || перечень допустимых значений для данного поля смотри в разделе константы [[#Статусы проектов|статусы проектов]]
|-
|hidden ||bool || скрытый ||
|-
|hasEndDate ||bool ||имеет ли дату окончания ||
|-
|endDate ||DateTime || ||учитывается только в том случае, если параметр '''hasEndDate''' установлен в ''true''
|-
|}


Ответ при успешном создании проекта:
Ответ при успешном создании проекта:

Версия от 14:05, 19 августа 2010

Список функций позволяющий манипулировать с проектами.


progect.add Создать проект

<request method="project.add">
  <account></account>
  <sid></sid>
  <project>
    <title></title>
    <description></description>
    <owner>
      <id></id>
    </owner>
    <client>
      <id></id>
    </client>
    <status></status>
    <hidden>{true|false}</hidden>
    <hasEndDate>{true|false}</hasEndDate>
    <endDate></endDate>
  </project>
  <signature></signature>
</request>

Если не передать автора (owner), или указать id=0, то будет использован в качестве автора пользователь текущей сессии. Контрагент не обязательный параметр.

Название Тип Значение Примечание
sid string(32) ключ сесии выдается в результате прохождения аутентификации
title string Название проекта
description string Описание проекта которое задает пользователь
owner.id int идентификатор пользователя, который будет считаться создателем проекта. Данное поле не обязательно или можно указать значение 0. В этом случае будет назначен владельцем пользователь, от имени которого выполняется запрос (определяется по sid)
client.id int идентификатор контрагента необязательное параметр
status enum статус создаваемого проекта перечень допустимых значений для данного поля смотри в разделе константы статусы проектов
hidden bool скрытый
hasEndDate bool имеет ли дату окончания
endDate DateTime учитывается только в том случае, если параметр hasEndDate установлен в true


Ответ при успешном создании проекта:

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
	<project>
		<id></id>
	</project>
</response>

project.update Обновить данные по проекту

Запрос на обновление данных:

<?xml version="1.0" encoding="UTF-8"?>
<request method="project.update">
	<account><!-- имя аккаунта --></account>
	<sid><!-- ключ сессии, полученный после аутентификации --></sid>
	<project>
		<id></id>
		<title></title>
		<description></description>
		<!-- Автор проекта -->
		<owner>
			<id></id>
		</owner>
		<!-- контрагент -->
		<client>
			<id></id>
		</client>
		<!-- статус проекта -->
		<status></status>
		<hidden>{true|false}</hidden><!-- Скрытый -->
		<HasEndDate>{true|false}</HasEndDate>
		<EndDate><!-- Дата завершения проекта --></EndDate>
	</project>
</request>

Результатом удачного выполнения запроса является следующий ответ:

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
	<project>
		<id></id>
	</project>
</response>

project.get Получить информацию о проекте

Запрос на получение информации о проекте

<?xml version="1.0" encoding="UTF-8"?>
<request method="project.get">
	<account><!-- имя аккаунта --></account>
	<sid><!-- ключ сессии, полученный после аутентификации --></sid>
	<id><!-- идентификатор проекта --></id>
</request>


Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
	<project>
		<id></id>
		<title></title>
		<description></description>
		<!-- Автор проекта -->
		<owner>
			<id></id>
			<name></name>
		</owner>
		<!-- контрагент -->
		<client>
			<id></id>
			<name></name>
		</client>
		<!-- статус проекта -->
		<status></status>
		<hidden>{true|false}</hidden><!-- Скрытый -->
		<hasEndDate>{true|false}</hasEndDate>
		<endDate><!-- Дата завершения проекта --></endDate>
		<beginDate><!-- дата создания проекта --></beginDate>
		<isOverdued><!-- просроченный ли проект --></isOverdued>
		<!-- осталось 25% времени до завершения или прошло 75% отведенного времени на выполнение его -->
		<isCloseToDeadline>{true|false}</isCloseToDeadline>
	</project>
</response>

В противном случае будет возвращен ответ с ошибкой.

project.getList Список проектов

Функция для получения списка проектов

<?xml version="1.0" encoding="UTF-8"?>
<request method="project.getList">
	<account><!-- имя аккаунта --></account>
	<sid><!-- ключ сессии, полученный после аутентификации --></sid>
	<login>
		<id></id>
	</login>
	<target><!-- Вкладки --></target>
	<status><!-- Статусы проектов --></status>
	<sortType><!-- Типы сортировок --></sortType>
	<pageCurrent><!-- Текущая страница, начало с 1 --></pageCurrent>
	<pageSize><!-- Размер страницы, какое количество необходимо показать/получить --></pageSize>
	<client>
		<id></id>
	</client>
</request>

Все параметры, за исключением account, sid, не являются обязательными. Если опустить параметр login, то будет получен список проектов доступных для текущего пользователя, необходимо помнить что только администраторы могут смотреть проекты других участников. Допустимые значения для target, status, sortType.

Ответ, пустой ответ не генерирует ошибку:

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
	<prejects count="10"><!-- count = количество в результирующем списке -->
		<project>
			<id></id>
			<title></title>
			<description></description>
			<!-- Автор проекта -->
			<owner>
				<id></id>
				<name></name>
			</owner>
			<!-- контрагент -->
			<client>
				<id></id>
				<name></name>
			</client>
			<!-- статус проекта -->
			<status></status>
			<hidden>{true|false}</hidden><!-- Скрытый -->
			<HasEndDate>{true|false}</HasEndDate>
			<EndDate><!-- Дата завершения проекта -->
			</EndDate>
			<BeginDate><!-- дата создания проекта -->
			</BeginDate>
			<IsOverdued><!-- просроченный ли проект -->
			</IsOverdued>
		<!-- осталось 25% времени до завершения или прошло 75% отведенного времени на выполнение его -->
			<IsCloseToDeadline>{true|false}</IsCloseToDeadline>
		</project>
		<!-- ... -->
	</prejects>
</response>

Если в результирующую выборку не попадают никакие проекты, то ответ будет иметь следующую форму?

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
	<prejects count="0">
	</prejects>
</response>

Используемые константы

Статусы проектов

  • DRAFT - черновик
  • COMPLETED - завершен
  • ACTIVE - активен

Типы сортировок

  • TITLE_ASC - по названию (алфавит)
  • TITLE_DESC - по названию (обратный порядок)
  • CLIENT_ASC - по контр агенту (алфавит)
  • CLIENT_DESC - по контр агенту (обратный порядок)
  • OWNER_ASC - по автору (алфавит)
  • OWNER_DESC - по автору (обратный порядок)
  • TASK_ASC - по количеству задач, возрастание
  • TASK_DESC - по количеству задач, убывание

Вкладки (Цели)

  • all - все
  • in - проекты в которых участвует пользователь, вкладка "Я участвую", значение по умолчанию
  • out - проекты которые создал пользователь, вкладка "Я создал"

Возвращаемые ошибки

  • 2001 - проект не существует
  • 2002 - на выполнение данного запроса отсутствуют права (привилегии)

Перейти

ПланФикс API