Графики (Widgets, Values, Totals)

Ресурс Widgets — графическое отображение распределения записей в каталоге по выбранным критериям.

График (Widgets)

URL: /{api url}/boards/{boardsId}/widgets/{widgetsId}

Параметры:

  • boardsId: (number) — идентификатор дашборда
  • widgetsId: (number) — идентификатор графика

Получить график [GET]

Ответ: 200 OK (application/json)

        {
            "id":"14",
            "name":null,
            "chartType":"pie", // тип графика
            "stacked":null, // сложить значения
            "value": // поле 'Значение'
                {
                    "type":"field", // тип параметра в поле 'Значение'
                    "value":"8", // id поля
                    "subType":"timeLeft" // обязательный параметр для полей типа: категория, набор галочек, вопрос
                },
            "valueFn":"avg", // значение функции
            "axis": // поле 'Ось'
                {
                    "type":"field",
                    "value":"12",
                    "subType":null // обязательный параметр для даты создания 
                },
            "split":null, // поле 'Разложить по' (недоступно для графика типа pie)
            "recordsType":"available", // доступные записи
            "recordsFilter": // фильтр
                {
                    "filters":
                       {
                         "4": // id поля для фильтра
                            [{
                              "recordId":"5",
                              "catalogId":"65"
                            }]
                       }
                  }
            }

Возможные значения:

  • chartType: columns (столбцы), lines (линия), bars (список), pie (пирог), radar (радар), number (число)
  • stacked: true и false
  • value[type]: recordsCount (количество записей), field (поле)
  • value[value]: id поля (если value[type]=field)
  • value[subType]: timeLeft (продолжительность)
  • valueFn: sum (сумма), avg (среднее, не выбранные значения не учитываются), avgAll (среднее по всем, не выбранные значения считаются за ноль), max (максимальное), min (минимальное)
  • axis[type]: field (поле), createdTime (дата создания)
  • axis[value]: id поля (если axis[type]=field)
  • axis[subType]: hour (час), hourOfDay (час дня), day (день), dayOfWeek (день месяца), week (неделя), weekOfYear (неделя года), month (месяц), monthOfYear (месяц года), year (год)
    Подробнее про Ось.
  • split: возможны такие же значения как в axis
  • recordsType: all (все записи каталога), available (только доступные сотруднику записи)

Изменить график [PATCH]

Запрос: (application/json)

        {
            "chartType":"columns"
        }

Ответ: 200 OK

Удалить график [DELETE]

Ответ: 200 OK


Коллекция графиков

Запрос: (application/json)

URL: /{api url}/boards/{boardsId}/widgets

Параметры:

  • boardsId: (number) — идентификатор дашборда

Получить графики [GET]

Ответ: 200 OK (application/json)

       [
           {
               "id":"14",
               "name":null,
               "chartType":"pie",
               "stacked":null,
               "value":
                   {
                       "value":"8",
                       "type":"field",
                       "subType":"timeLeft"
                   },
               "valueFn":"avg",
               "axis":
                   {
                       "value":"12",
                       "type":"field",
                       "subType":null
                   },
               "split":null,
               "recordsType":"available",
               "recordsFilter":null
           },
           {
               "id":"15",
               "name":null,
               "chartType":"columns",
               "stacked":null,
               "value":
                   {
                       "value":"",
                       "type":"recordsCount",
                       "subType":null
                   },
               "valueFn":null,
               "axis":
                   {
                       "value":"2",
                       "type":"field",
                       "subType":null
                   },
               "split":
                   {
                       "value":"2",
                       "type":"field",
                       "subType":null
                   },
               "recordsType":"all",
               "recordsFilter":null
           }
       ]

Создать график [POST]

Запрос: (application/json)

        {
            "chartType":"columns",
            "value":
                {
                    "type":"recordsCount",
                    "value":null
                },
            "valueFn":null,
            "axis":
                {
                    "type":"field",
                    "value":"4"
                },
            "recordsType":"all"
        }

Ответ: 200 OK (application/json)

        {
            "id": "16" // идентификатор созданного графика
        }

Значения графика (Values)

Получить значения графика [GET]

URL: /{api url}/boards/{boardsId}/widgets/{widgetsId}/values
            ?recordsFilter[filters][0][fieldId]=12
            &recordsFilter[filters][0][value][0]=CURRENT_USER
            &limit=100
            &offset=0

Подробнее о фильтрах по полям.
Пример: «Количество записей / Имя клиента»: boardsId=6, widgetsId=14, filter=CURRENT_USER

Получить значения без создания графика [GET]

URL: /{api url}/boards/{boardsId}/widgets/new/values
            ?value[type]=recordsCount
            &axis[type]=field
            &axis[value]=2
            &recordsFilter[filters][0][fieldId]=12
            &recordsFilter[filters][0][value][0]=CURRENT_USER
            &limit=100
            &offset=0

Возможные параметры запроса можете найти в параграфе График (Widgets)

Пример: «Количество записей / Имя клиента»: filter=CURRENT_USER

Ответ: 200 OK (application/json)

Результат:

    [
        {
            "axis": "Анатолий",
            "values": [
                {
                    "value": "1"
                }
            ]
        }
    ]

Общие данные графика (Totals)

Получить общие данные графика [GET]

URL: /{api url}/boards/{boardsId}/widgets/{widgetsId}/totals
            ?recordsFilter[filters][0][fieldId]=12
            &recordsFilter[filters][0][value][0]=CURRENT_USER

Пример: количество записей, среднее значение и количество осей: boardsId=6, widgetsId=14, filter=CURRENT_USER

Получить общие данные без создания графика [GET]

URL: /{api url}/boards/{boardsId}/widgets/new/totals
            ?value[type]=recordsCount
            &axis[type]=field
            &axis[value]=2
            &recordsFilter[filters][0][fieldId]=12
            &recordsFilter[filters][0][value][0]=CURRENT_USER

Пример: общих данных из каталога с заданным фильтром по текущему сотруднику

Ответ: 200 OK (application/json)

Результат:

        [
              {
                    "key": "sum",
                    "value": 1
              },
              {
                    "key": "avg",
                    "value": 1
              },
              {
                    "key": "count",
                    "value": 1
              }
        ]

results matching ""

    No results matching ""