ПланФикс API: Работа с файлами
file.download / скачать файл
(!Под вопросом). Позволяет скачать файл.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.download">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<file>
<id></id>
</file>
<signature></signature>
</request>
Ответом будет не стандартный пакет в формате XML а прямой файл. Поэтому надо будет парсить HTTP-ответ. Типа 200 - все ок, 403 - доступ к файлу жапрещен, 404 - фалй не найден.
file.get / получение информации о файле
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.get">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<file>
<id></id>
</file>
<signature></signature>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<file>
<id></id>
<name>имя файла</name>
<version>версия</version>
<description>описание</description>
<date>дата загрузки файла</date>
<sourceType>смотри раздел Константы. Типы файлов.</sourceType>
<size>размер в байтах</size>
<task>
<id></id>
<title></title>
</task>
<project>
<id></id>
<title></title>
</project>
<!-- пользователь который загрузил данный файл -->
<user>
<id></id>
<name></name>
</user>
</file>
</response>
file.getListForProject / список файлов
Получение списка файлов для проекта.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getListForProject">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<project>
<id></id>
</project>
<fileGroup></fileGroup>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<signature></signature>
</request>
Параметр fileGroup - не обязательный.
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<files count="x" totalCount="x">
<file>
<id></id>
<name>имя файла</name>
<version>версия</version>
<description>описание</description>
<date>дата загрузки файла</date>
<sourceType>смотри раздел Константы. Типы файлов.</sourceType>
<size>размер в байтах</size>
<task>
<id></id>
<title></title>
</task>
<project>
<id></id>
<title></title>
</project>
<!-- пользователь который загрузил данный файл -->
<user>
<id></id>
<name></name>
</user>
</file>
<file>
<!-- ... -->
</file>
<!-- ... -->
</files>
</response>
Формат такого ответа получают все запросы на список файлов.
file.getListForTask / список файлов для задачи
Получение списка файлов для задачи.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getListForTask">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id></id>
</task>
<fileGroup></fileGroup>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<signature></signature>
</request>
Ответ: имеет такой же формат как и в функции file.getListForProject
file.getListForUser / список файлов загруженных пользователем
Получение списка файлов которые загрузил пользователь. Данную функцию можно вызывать с правами администратора для любого пользователя, либо получать список собственных файлов.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getListForUser">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<user>
<id></id>
</user>
<fileGroup></fileGroup>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<signature></signature>
</request>
Ответ: имеет такой же формат как и в функции file.getListForProject
file.getListForClient /список файлов контрагента
Получение списка файлов для контрагента/клиента.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getListForClient">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<client>
<id></id>
</client>
<fileGroup></fileGroup>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<signature></signature>
</request>
Ответ: имеет такой же формат как и в функции file.getListForProject
file.getHistory / получение истории по файлу
Позволяет получить полную историю по изменениям файла.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getHistory">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<file>
<id></id>
</file>
<signature></signature>
</request>
Ответ: имеет такой же формат как и в функции file.getListForProject
file.uploadNewVersion / загрузить новую версию файла
Функция позволяет загрузить новую версию файла.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.uploadNewVersion">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<file>
<id>идентификатор обновляемого файла</id>
<description>новое описание файла</description>
<name></name>
<!-- тело файла закодированное base64 -->
<body></body>
</file>
<signature></signature>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<file>
<id></id>
</file>
</response>
file.getGroupList / список доступных групп файлов
Получаем текстовое описание групп файлов которое у нас присутствует.
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getGroupList">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<signature></signature>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<fileGroups count="x" totalCount="x">
<fileGroup>
<id></id>
<name></name>
</fileGroup>
<fileGroup>
<!-- ... -->
</fileGroup>
<!-- ... -->
</fileGroups>
</response>
file.getCountForGroups / получение количества файлов для групп
Результатом выполнения функции будет список групп и количества файлов в ней
<?xml version="1.0" encoding="UTF-8"?>
<request method="file.getGroupList">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<!-- следующие параметры взаимо исключающие -->
<!-- для задачи -->
<task>
<id></id>
</task>
<!-- в рамках проекта -->
<project>
<id></id>
</project>
<!-- для контрагента -->
<client>
<id></id>
</client>
<!-- для указанного опльзователя -->
<user>
<id></id>
</user>
<signature></signature>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<fileGroups count="x" totalCount="x">
<fileGroup>
<id></id>
<name></name>
<fileCount>количество файлов в группе</fileCount>
</fileGroup>
<fileGroup>
<!-- ... -->
</fileGroup>
<!-- ... -->
</fileGroups>
</response>
Константы
Типы файлов
- FILESYSTEM - обычный файл
- INTERNET - внешний файл, хранящийся на внешнем ресурсе.