REST API: Сложные фильтры проектов: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
(Новая страница: «{{#seo: |title=REST API: Сложные фильтры проектов |titlemode=append |keywords=планфикс, фильтры проектов, апи, api, rest, rest api, сложные фильтры проектов |description=REST API: Сложные фильтры проектов }} Сложные фильтры в REST API ПланФикса применяются в методе «/project/list» при получении списка...»)
 
Нет описания правки
Строка 12: Строка 12:




Пример запроса получения списка проектов с передачей нескольких фильтров, по пользовательскому полю типа «Дата» и пользовательскому полю типа «Список сотрудников» (используется логика И):
Пример запроса получения списка проектов с передачей нескольких фильтров, по пользовательскому полю типа «Дата» и пользовательскому полю типа «Сотрудник» (используется логика И):


<pre>
<pre>
Строка 18: Строка 18:
   "offset": 0,
   "offset": 0,
   "pageSize": 100,
   "pageSize": 100,
   "fields": "directory,parentKey,key,3,5",
   "fields": "id,name,description,3,5",
   "filters": [
   "filters": [
     {
     {
       "type": 6103,
       "type": 5103,
       "field": 3,
       "field": 3,
       "operator": "equal",
       "operator": "equal",
Строка 31: Строка 31:
     },
     },
     {
     {
       "type": 6109,
       "type": 5109,
       "field": 5,
       "field": 5,
       "operator": "equal",
       "operator": "equal",
Строка 105: Строка 105:
|5013 || Дата создания
|5013 || Дата создания
|-
|-
|3106 || Пользовательское поле типа «Контрагент»
|5004 || Автор
|rowspan="5" |
|rowspan="9" |
*equal
*equal
*notequal
*notequal
|rowspan="5" |  
|rowspan="9" |  
string - номер сотрудника/контакта/группы с префиксом.  
string - номер сотрудника/контакта/группы с префиксом.  
Например: “user:1”, “contact:5”, “group:3”
Например: “user:1”, “contact:5”, “group:3”
|-
|-
|3116 || Пользовательское поле типа «Контакт»
|5008 || Клиент-менеджер
|-
|-
|3104 || Пользовательское поле типа «Сотрудник»
|5012 || Аудитор
|-
|-
|3111 || Пользовательское поле типа «Группа, сотрудник, контакт»
|5011 || Исполнитель
|-
|-
|3103 || Пользовательское поле типа «Список сотрудников»
|5108 || Поле проекта типа «Контакт»
|-
|-
|3108 || Пользовательское поле типа «Строка»
|5109 || Поле проекта типа «Сотрудник»
|  
|-
|5110 || Поле проекта типа «Контрагент»
|-
|5112 || Поле проекта типа «Группа, сотрудник, контакт»
|-
|5113 || Поле проекта типа «Список сотрудников»
|-
|5001 || Название проекта
|rowspan="2" |
*equal  
*equal  
*notequal
*notequal
|string - осуществляется фильтр содержит / не содержит
|rowspan="2" |
string - осуществляется фильтр содержит / не содержит
|-
|5101 || Поле проекта типа «Строка»
|-
|-
|3109  || Пользовательское поле типа «Число»
|3109  || Пользовательское поле типа «Число»

Версия от 10:17, 20 февраля 2023

Сложные фильтры в REST API ПланФикса применяются в методе «/project/list» при получении списка проектов. Фильтры проектов задаются следующим набором параметров:

  • type — числовой идентификатор фильтра.
  • operator — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
  • value — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
  • field — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.


Пример запроса получения списка проектов с передачей нескольких фильтров, по пользовательскому полю типа «Дата» и пользовательскому полю типа «Сотрудник» (используется логика И):

{
  "offset": 0,
  "pageSize": 100,
  "fields": "id,name,description,3,5",
  "filters": [
    {
      "type": 5103,
      "field": 3,
      "operator": "equal",
      "value": {
        "dateType": "otherRange",
        "dateFrom": "15-12-2022",
        "dateTo": "17-12-2022"
      }
    },
    {
      "type": 5109,
      "field": 5,
      "operator": "equal",
      "value": "user:50"
    }
  ]
}


Тип Название Операторы Формат value
5103 Поле проекта типа «Дата»
  • equal
  • notequal
  • gt
  • lt

Объект :

 
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}

dateType принимает следующие значения:

  • today - сегодня
  • yesterday - вчера
  • tomorrow - завтра
  • thisWeek - текущая неделя
  • lastWeek
  • nextWeek
  • thisMonth
  • lastMonth
  • nextMonth
  • last - последние n дней, n передается в dateValue
  • next - следующие n дней, n передается в dateValue
  • in - через n дней, n передается в dateValue
  • otherDate - точная дата, дата передается в формате дд-мм-гггг в dateFrom
  • otherRange - точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo
  • otherDate_withTime - точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom
  • otherRange_withTime - точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo

Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос.

Примеры:

"value": {
    "dateType": "thisWeek"
}
"value": {
    "dateType": "otherRange",
    "dateFrom": "01-12-2022",
    "dateTo": "06-12-2022"
}
"value": {
    "dateType": "otherDate_withTime",
    "dateFrom": "30-12-2022 12:00",
}
5005 Дата завершения
5013 Дата создания
5004 Автор
  • equal
  • notequal

string - номер сотрудника/контакта/группы с префиксом. Например: “user:1”, “contact:5”, “group:3”

5008 Клиент-менеджер
5012 Аудитор
5011 Исполнитель
5108 Поле проекта типа «Контакт»
5109 Поле проекта типа «Сотрудник»
5110 Поле проекта типа «Контрагент»
5112 Поле проекта типа «Группа, сотрудник, контакт»
5113 Поле проекта типа «Список сотрудников»
5001 Название проекта
  • equal
  • notequal

string - осуществляется фильтр содержит / не содержит

5101 Поле проекта типа «Строка»
3109 Пользовательское поле типа «Число»
  • equal
  • notequal
  • gt
  • lt
int
3115 Пользовательское поле типа «Чек-бокс»
  • equal
  • notequal
int - 1 / 0

boolean

3105 Пользовательское поле типа «Справочник»
  • equal
  • notequal
int - идентификатор записи


Перейти