Публичное API
- 1 Какова схема авторизации
- 2 Заголовки запросов
- 3 Какие запросы можно использовать
- 3.1 Отчеты
- 3.1.1 Получение списка всех доступных отчётов
- 3.1.2 Получение метаданных
- 3.1.3 Генерация и получение отчёта
- 3.1.3.1 Обычный режим
- 3.1.3.2 Режим потокового скачивания
- 3.2 Бейджи
- 3.3 План развития
- 3.4 Баллы
- 3.5 Файлы
- 3.6 Квесты
- 3.1 Отчеты
Какова схема авторизации
Для публичных методов API реализована авторизация через публичный ключ API – при отправке запросов по урлам вида api/public/* идёт проверка на наличие заголовка (Header) X-Auth-Token
. Если заголовок присутствует, и соответствует указанному в конфиге, то авторизация проходит успешно
Публичный ключ API хранится в .env под названием PUBLIC_API_TOKEN
В панели администрирования публичный ключ API отображается в разделе Настройки → Лицензия.
При отсутствии публичного ключа API, либо если он указан неверно, в запросах возвращается ошибка 401 Authorization Required
Заголовки запросов
Header | Описание | Механика |
---|---|---|
X-Auth-Token | Заголовок авторизации | Обязательный заголовок При каждом обращении, не важно, POST или GET, в заголовках запроса нужно указывать параметр |
Locale | Язык запроса, на котором должен быть возвращён контент |
При этом если в теле запроса нет ошибок и если в описании метода не указано иное, запрос должен быть успешно выполнен и вернуть статус 200 с соответствующим сообщением. |
Какие запросы можно использовать
Отчеты
Получение списка всех доступных отчётов
Чтобы получить список всех доступных отчётов, нужно сделать GET запрос на адрес:
GET
/public/api/v1/reports/list
В ответ придёт JSON массив объектов, каждый из которых будет содержать Название (title
) и Системное имя (type
).
Получение метаданных
Чтобы получить метаданные о конкретном отчёте, нужно сделать GET запрос на адрес:
GET
/public/api/v1/reports/metadata/{type}
заменив в адресеtype
на нужное Системное имя, полученное на предыдущем этапе.
В ответ придёт JSON объект с двумя полями:
headersList
— объект, содержащий предполагаемые заголовки отчёта;
Количество полей может быть любое, зависит от отчёта, т.к каждый отчёт содержит различные поля;
Ключами являются Системные имена полей, а значениями являются Названия полей (например,"email": "Почта"
);
В сформированном отчёте может быть другое количество полей или их названия (например, в отчёте по тестированию могут быть поля, отвечающие за вопросы выбранного тестирования, но мы не можем знать эти вопросы (поля) до выбора самого тестирования, поэтому в метаданных этих полей заранее быть не может).filtersList
— объект, содержащий фильтры данного отчёта;
Ключами являются Системные имена, а значениями объекты, с информацией о фильтре (пример полей:type
— тип,label
— название,values
— значения,url
— адрес, на который нужно делать запрос для получения списка значений и поиска по нему);
Генерация и получение отчёта
Обычный режим
Чтобы сгенерировать и получить отчёт, нужно отправить POST запрос на адрес:
post
/public/api/v1/reports/generate/{type}
заменив в адресеtype
на нужное Системное имя, полученное на этапе Получения списка всех доступных отчётов.
В body запроса нужно отправить JSON объект с полем filters
, в котором будут поля, ключами которых будут Системные имена фильтров, полученных на этапе Получения метаданных, а значениями непосредственно значения фильтров (цифра, строка, массив и тд). Если данные по фильтру Статус пользователя не были переданы или был передан пустой массив, отчёт формируется только по активным сотрудникам
В ответ придёт JSON объект со следующими полями:
title
— строка с названием отчёта;
Может не совпадать со значением, полученным на первом этапе, т.к может содержать дополнительные данные вроде даты и других значений.isMultiple
— булево значение;
Если значениеtrue
, то в поляхheaders
иdata
будет не объект, а массив объектов — каждый объект это отдельная страница отчёта.headers
— объект, содержащий заголовки таблицы отчёта, где ключи это Системные имена полей, а значения это Названия полей.data
— массив объектов, содержащий данные отчёта;
Каждый объект в массиве — это одна строка;
Каждый объект содержет поля, ключами которого являются Системные имена полей, а значениями являются данные (например,"status": "Активен"
).metadata
— объект, содержащий дополнительные данные об отчёте, например, выбранные фильтры;
Ключами объекта являются Системные имена полей, а значениями сами данные (например,"metadataFieldName": "Тестовый пользователь"
).hasErrors
— булево значение;
Были ли ошибки при попытке сформировать отчёт;
Если значениеtrue
, значит отчёт не сформирован и нужно смотреть ошибки в полеerrors
.errors
— объект, содержащий ошибки;
Ключами являются Системные имена полей, а значениями Текст ошибки.
Режим потокового скачивания
Чтобы сгенерировать отчёт, для дальнейшего его скачивания в потоковом режиме, нужно отправить POST запрос на адрес:
post
/public/api/v1/reports/create/{type}
заменив в адресеtype
на нужное Системное имя, полученное на этапе Получения списка всех доступных отчётов.
В body запроса нужно отправить JSON объект с полем filters
, в котором будут поля, ключами которых будут Системные имена фильтров, полученных на этапе Получения метаданных, а значениями непосредственно значения фильтров (цифра, строка, массив и тд). Если данные по фильтру Статус пользователя не были переданы или был передан пустой массив, отчёт формируется только по активным сотрудникам
В ответ придёт JSON объект с полем id
, он же Идентификатор сгенерированного отчета.
Чтобы получить JSON данные отчёта, сгенерированного в предыдущем шаге, нужно отправить GET запрос на адрес:
GET
/public/api/v1/reports/data/{id}
заменив в адресеid
на нужный Идентификатор, полученный в предыдущем шаге
Администратору платформы для обработки json необходимо включить на своей стороне поддержку потокового скачивания в принимаемом ПО
Описание режима потоковой передачи данных приведено на сайте https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-handle-large-messages#download-content-in-chunks
Важно:
В потоковом режиме данные передаются дольше
После запроса отчёта в потоковом режиме API не становится заблокированным, можно обратиться к другим методом или за формированием другого отчёта
В ответ придёт JSON объект со следующими полями:
title
— строка с названием отчёта;
Может не совпадать со значением, полученным на первом этапе, т.к может содержать дополнительные данные вроде даты и других значений.isMultiple
— булево значение;
Если значениеtrue
, то в поляхheaders
иdata
будет не объект, а массив объектов — каждый объект это отдельная страница отчёта.headers
— объект, содержащий заголовки таблицы отчёта, где ключи это Системные имена полей, а значения это Названия полей.data
— массив объектов, содержащий данные отчёта;
Каждый объект в массиве — это одна строка;
Каждый объект содержит поля, ключами которого являются Системные имена полей, а значениями являются данные (например,"status": "Активен"
).metadata
— объект, содержащий дополнительные данные об отчёте, например, выбранные фильтры;
Ключами объекта являются Системные имена полей, а значениями сами данные (например,"metadataFieldName": "Тестовый пользователь"
).hasErrors
— булево значение;
Были ли ошибки при попытке сформировать отчёт;
Если значениеtrue
, значит отчёт не сформирован и нужно смотреть ошибки в полеerrors
.errors
— объект, содержащий ошибки;
Ключами являются Системные имена полей, а значениями Текст ошибки.
Бейджи
Получение информации об имеющихся на платформе бейджах
Информация передается по всем неудаленным бейджам
Чтобы получить информацию об имеющихся на платформе бейджах, нужно сделать GET запрос на адрес:
GET
/public/api/v1/badge
Если требуется получить ответ на определенном языке, в заголовках запроса можно передать параметрLocale
В случае успешного запроса (200) в ответ придёт JSON объект со следующими полями:
id
– идентификатор бейджа, INTtitle
– название бейджа (на запрашиваемом или языке, установленном по умолчанию), varcharimage
– ссылка на загруженное изображение для бейджа, stringdescription
– описание бейджа илиNULL
в случае его отсутствия, stringpopupDescription
– сообщение при получении бейджа, stringcolor
– значение цвета для бейджа илиNULL
, если цвет не установлен, varcharactive
– статус активности бейджа,0
или1
, booleansystem
–1
если бейдж системный,0
если бейдж пользовательский, booleanchildren
– массив с уровнями бейджей, если бейдж содержит уровни, или пустой массив:Для каждого дочернего бейджа отображаются все значения выше (кроме
children
) и дополнительное значениеgrade
grade
– грейд бейджа, INT
Начисление бейджа пользователю
Чтобы начислить бейдж пользователю, нужно сделать POST запрос на адрес:
post
/public/api/v1/badge/{badgeId}/assign
в {badgeId} должен передаваться ID бейджа, который необходимо назначить пользователю или пользователям
В body запроса нужно отправить обязательный JSON объект userId
, в котором перечислены уникальные идентификаторы пользователей (массив, должны совпадать c выбранным уникальным идентификатором на платформе)
Пример:
{
"userId": [
"example@example.ru",
"example2@example.ru"
]
}
В случае успешного запроса (200) в ответ придёт JSON объект со следующими полями:
result
– значениеtrue
data
– массив данных по каждому пользователю, который был передан в запросе:id
– идентификатор пользователяsuccess
false
– если пользователь не существует или удалён, и ему не был начислен бейджtrue
– если пользователь существует, не удалён, ему был начислен бейдж (или он уже был начислен ранее)
error
"User not found"
– если пользователь не существует или удалён"User already has a higher grade badge, remove it first"
– если у пользователю пытаются назначить многоуровневый бейдж более низкого уровня при наличии у него более высокогоnull
– для статусаtrue
, при успешном начислении бейджа
Снятие бейджа с пользователя
Чтобы снять бейдж пользователю, нужно сделать POST запрос на адрес:
post
/public/api/v1/badge/{badgeId}/remove
в {badgeId} должен передаваться ID бейджа, который необходимо снять с пользователя или с пользователей
В body запроса нужно отправить обязательный JSON объект userId
, в котором перечислены уникальные идентификаторы пользователей (массив, должны совпадать c выбранным уникальным идентификатором на платформе)
Пример:
В случае успешного запроса (200) в ответ придёт JSON объект со следующими полями:
result
– значениеtrue
data
– массив данных по каждому пользователю, который был передан в запросе:id
– идентификатор пользователяsuccess
false
– если пользователь не существует или удалён, и с него не был снят бейджtrue
– если пользователь существует, не удалён, бейдж был с него снят (или этого бейджа у него и не было)
error
"User not found"
– если пользователь не существует или удалёнnull
– для статусаtrue
, при успешном снятии бейджа
План развития
Получение информации о текущем состоянии целей пользователя
Чтобы получить информацию о текущем состоянии целей пользователя, нужно сделать GET запрос на адрес:
GET
/public/api/v1/goals/user/{userId}(?type=active|completed|all)
в адресе метода должны быть указаны следующие параметры:userId
– уникальный идентификатор пользователя, должен совпадать c выбранным уникальным идентификатором на платформе, STRING. Обязательный параметрtype
– тип цели, информацию по которой надо вернуть. Необязательный параметр, при отсутствии возвращаются все цели пользователя. Возможные значения:active
– все незавершённые цели пользователя (значения completedAt и completedBy в базе данных Null)completed
– все завершённые цели пользователяall
– все цели пользователя (кроме удалённых)
В случае успешного запроса (200) в ответ придёт JSON со следующими параметрами:
result
– должно вернуться значение trueitems
– массив всех целей пользователя указанного типа. Может вернуться пустой массив, если у пользователя нет неудалённых целейid
– уникальный идентификатор цели, по которому можно обратиться к ней для изменения, STRINGtitle
– название цели, STRINGvalue
– целевое значение цели, INTprogress
– текущее значение цели, INTpriority
– приоритет, установленный для цели, возможные значения -high
,medium
,low
, STRINGdeadlineAt
– дедлайн цели с указанием даты наступления дела в формате ISO 8601 с указанием таймзоны, DATETIMEvalueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGinRisk
– находится ли цель в зоне риска, возможные значение –true
илиfalse
, boolean. Для ключевых результатов – наследуется из родительской целиapprovedAt
:Дата и время подтверждения цели в формате ISO 8601 с указанием таймзоны, если руководитель или HR-сотрудник подтвердил цель, DATETIME
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
approvedById
:Идентификатор сотрудника, который подтвердил цель, если она подтверждена, STRING
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
completedAt
:Дата и время завершения цели в формате ISO 8601 с указанием таймзоны, если цель завершена, DATETIME
null
– если цель не завершенаДля ключевых результатов – наследуется из родительской цели
completedById
:Идентификатор сотрудника, который завершил цель, если она завершена, STRING
null
– если цель не была завершенаДля ключевых результатов – наследуется из родительской цели
keyResults
:Массив всех ключевых результатов, если они заданы. Структура каждого элемента массива результатов повторяет структуру элемента массива цели
null
– если для цели не заданы ключевые результаты или цель сама является ключевым результатом
limit
– максимальное количество активных целей, которое может быть создано для одного пользователяcountActive
– количество текущих активных целей пользователя. Значение должно возвращаться даже если в запросе запрашивается информация только по завершённым целям пользователя.
Cоздания новых целей для пользователей
Чтобы создать новую цель для пользователя, нужно сделать POST запрос на адрес:
post
/public/api/v1/goals/user/{userId}
в адресе метода должен быть указан параметрuserId
– уникальный идентификатор пользователя, должен совпадать c выбранным уникальным идентификатором на платформе, STRING. Обязательный параметр
В body запроса нужно отправить обязательный JSON, каждый элемент которого должен содержать следующие параметры:
authorId
– уникальный идентификатор пользователя, от имени которого должна быть создана цель, STRING. Обязательный параметр. Возможные значения:Совпадает с
userId
, если цель должна быть создана от имени пользователяСовпадает с
id
руководителя пользователя или пользователя с разрешением План развития \ Управление целями и планами. Если цель создаётся от руководителя или пользователя с указанным разрешением, она сразу должна создаваться подтверждённой
title
– название цели, STRING, до 3000 символов. Обязательный параметрvalue
– целевое значение цели, целое положительное число больше 0, до 10 символов, INTEGERОбязательное, если для цели нет ключевых значений
null
, если для цели есть ключевые значенияДругие значения
value
для цели будут игнорироваться, для цели устанавливается значение 100
valueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGОбязательное, если для цели нет ключевых значений.
null
, если для цели есть ключевые значенияДругие значения
valueUnit
для цели будут игнорируется, для цели устанавливается значениеpercents
priority
– приоритет цели, возможные значения -high
,medium
,low
, STRING. Обязательный параметрdeadlineAt
– дедлайн цели в формате ISO 8601 с указанием таймзоны, должен быть больше текущего дня, DATETIME. Обязательный параметр. Время учитывается только для выставление корректной даты в соответствии с таймзонами, все уведомления о дедлайнах будут отправляться пользователю относительно 00:00 указанной даты.keyResults
– массив объектов для указания ключевых результатов цели. Обязательный:null
, если для цели не должны быть заданы ключевые параметрыЕсли передаётся массив, то для каждого элемента массива должны быть указаны следующие параметры (требования к ним см. выше):
title
value
valueUnit
В случае успешного запроса (200) в ответ придёт JSON со следующими полями:
result
– должно вернуться значение trueuserId
– идентификатор пользователя, для которого производились измененияdata
– массив данных по каждому элементу, который был передан в запросе:success
:true
, если цель была успешно созданаfalse
, если цель не удалось создать
goal
–null
, если цель не была создана, иначе массив всех созданных целей пользователя:id
– уникальный идентификатор цели, по которому можно обратиться к ней для изменения, STRINGtitle
– название цели, STRINGvalue
– целевое значение цели, INTprogress
– текущее значение цели, INTpriority
– приоритет, установленный для цели, возможные значения -high
,medium
,low
, STRINGdeadlineAt
– дедлайн цели с указанием даты наступления дела в формате ISO 8601 с указанием таймзоны, DATETIMEvalueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGinRisk
– находится ли цель в зоне риска, возможные значение –true
илиfalse
, boolean. Для ключевых результатов – наследуется из родительской целиapprovedAt
:Дата и время подтверждения цели в формате ISO 8601 с указанием таймзоны, если руководитель или HR-сотрудник подтвердил цель, DATETIME
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
approvedById
:Идентификатор сотрудника, который подтвердил цель, если она подтверждена, STRING
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
completedAt
:Дата и время завершения цели в формате ISO 8601 с указанием таймзоны, если цель завершена, DATETIME
null
– если цель не завершенаДля ключевых результатов – наследуется из родительской цели
completedById
:Идентификатор сотрудника, который завершил цель, если она завершена, STRING
null
– если цель не была завершенаДля ключевых результатов – наследуется из родительской цели
keyResults
:Массив всех ключевых результатов, если они заданы. Структура каждого элемента массива результатов повторяет структуру элемента массива цели
null
– если для цели не заданы ключевые результаты или цель сама является ключевым результатом
errors
–null
, если цель была создана успешно, массив ошибок, если цель создать не удалось. Возможные ошибки:Обязательный параметр не заполнен или заполнен некорректно (если таких параметров несколько, по каждому должна вернуться своя ошибка. Для ошибки параметра внутри ключевого результата должен возвращаться путь до параметра внутри структуры в JSON в формате
keyResults.0.title)
"message": "Required parameters are not filled in",
"cause" : "идентификатор_параметра"
Например:Если в поле
deadlineAt
некорректные данные (не тот формат, дата в прошлом)"message": "Invalid date. You can only specify the current and future date"
"cause": "deadlineAt"
Если в поле
priority
некорректные данные"message": "Invalid value. Allowed values: high, medium, low"
"cause": "priority"
Если в поле
value
= 0"message": "Invalid value. Value should be greater than 0"
"cause": "keyResults[0].value"
Если в поле
value
илиkeyResults[0].value
больше 10 символов"message": "Value is too long. Allowed length 10 characters"
"cause": "value"
Пользователь (userId или authorId) деактивирован, не существует или удалён:
"message": "User not found",
"cause" : "userId или authorId"
Лимит целей для пользователя достигнут, новые цели создать нельзя:
"message": "Goal limit reached",
"cause" : "значение_limit"
В качестве автора указан пользователь, который не может создавать цели данному сотруднику:
"message": "Author has no rights to create goals",
"cause" : "authorId"
Изменение созданной цели пользователя
Чтобы изменить созданную цель пользователя, нужно сделать PUT запрос на адрес:
pUt
/public/api/v1/goals/{goalId}
в адресе метода должен быть указан параметрgoalId
– уникальный идентификатор цели, должен совпадать c выбранным уникальным идентификатором на платформе, STRING. Обязательный параметр
В body запроса нужно отправить обязательный JSON, каждый элемент которого должен содержать следующие параметры:
authorId
– уникальный идентификатор пользователя, от имени которого должна быть изменена цель, STRING. Обязательный параметр. Возможные значения:Совпадает с
id
пользователя, цель которого редактируется. Изменения будут применены только для неподтверждённых целейСовпадает с
id
руководителя пользователя или пользователя с разрешением План развития \ Управление целями и планами
title
– название цели, STRING, до 3000 символов:Новое значение, если
title
необходимо изменитьnull
, если title менять не нужно
value
– целевое значение цели, целое положительное число больше 0, до 10 символов, INTEGERНовое значение, если
value
необходимо изменитьnull
, еслиvalue
менять не нужно или для цели есть ключевые значенияЕсли для цели есть ключевые значения, указанные значения игнорируются
progress
– текущее значение цели, которое необходимо установить. Целое положительное число больше 0, INTEGERНовое значение, если
progress
необходимо изменитьnull
, еслиprogress
менять не нужно или для цели есть ключевые значенияЕсли для цели есть ключевые значения, указанные значения игнорируются
valueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGНовое значение, если
valueUnit
необходимо изменитьnull
, еслиvalueUnit
менять не нужно или для цели есть ключевые значенияЕсли для цели есть ключевые значения, указанные значения игнорируются
priority
– приоритет цели, возможные значения –high
,medium
,low
, STRINGНовое значение, если
priority
необходимо изменитьnull
, еслиpriority
менять не нужно или для цели, которая является ключевым значениемЕсли для цель является ключевым значением, указанные значения игнорируются
deadlineAt
– дедлайн цели в формате ISO 8601 с указанием таймзоны, должен быть больше текущего дня, DATETIMEНовое значение, если
deadlineAt
необходимо изменитьnull
, еслиdeadlineAt
менять не нужно или для цели является ключевым значениемЕсли для цель является ключевым значением, указанные значения игнорируются
keyResults
– массив объектов для указания ключевых результатов цели. Необходим если нужно добавить в цель новые ключевые результаты. Если необходимо отредактировать созданные ключевые результаты, необходимо обращаться к ним поgoalId
. Игнорируется для ключевых результатов целиnull
, если в цель не надо добавлять ключевые значенияЕсли заполнен, то для каждого элемента массива должны быть указаны следующие параметры (требования к ним см. выше):
title
value
valueUnit
В случае успешного запроса (200) в ответ придёт JSON со следующими полями:
result
– должно вернуться значение truegoal
:id
– уникальный идентификатор цели, STRINGtitle
– название цели, STRINGvalue
– целевое значение цели, INTprogress
– текущее значение цели, INTpriority
– приоритет, установленный для цели, возможные значения -high
,medium
,low
, STRINGdeadlineAt
– дедлайн цели с указанием даты наступления дела в формате ISO 8601 с указанием таймзоны, DATETIMEvalueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGinRisk
– находится ли цель в зоне риска, возможные значение –true
илиfalse
, boolean. Для ключевых результатов – наследуется из родительской целиapprovedAt
:Дата и время подтверждения цели в формате ISO 8601 с указанием таймзоны, если руководитель или HR-сотрудник подтвердил цель, DATETIME
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
approvedById
:Идентификатор сотрудника, который подтвердил цель, если она подтверждена, STRING
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
completedAt
:Дата и время завершения цели в формате ISO 8601 с указанием таймзоны, если цель завершена, DATETIME
null
– если цель не завершенаДля ключевых результатов – наследуется из родительской цели
completedById
:Идентификатор сотрудника, который завершил цель, если она завершена, STRING
null
– если цель не была завершенаДля ключевых результатов – наследуется из родительской цели
keyResults
:Массив всех ключевых результатов, если они заданы. Структура каждого элемента массива результатов повторяет структуру элемента массива цели
null
– если для цели не заданы ключевые результаты или цель сама является ключевым результатом
Подтверждение цели пользователя
Чтобы подтвердить цель, нужно сделать POST запрос на адрес:
post
/public/api/v1/goals/{goalId}/approve
в адресе метода должен быть указан параметрgoalId
– уникальный идентификатор цели, должен совпадать c выбранным уникальным идентификатором на платформе, STRING. Обязательный параметр
В body запроса нужно отправить обязательный JSON, который содержит следующий параметр:
authorId
– уникальный идентификатор пользователя, от имени которого должна быть подтверждена цель, STRING. Обязательный параметр. Должен совпадать сid
руководителя пользователя или пользователя с разрешением План развития \ Управление целями и планами.
В случае успешного запроса (200) в ответ придёт JSON со следующими полями:
result
– должно вернуться значение truegoal
:id
– уникальный идентификатор цели, STRINGtitle
– название цели, STRINGvalue
– целевое значение цели, INTprogress
– текущее значение цели, INTpriority
– приоритет, установленный для цели, возможные значения -high
,medium
,low
, STRINGdeadlineAt
– дедлайн цели с указанием даты наступления дела в формате ISO 8601 с указанием таймзоны, DATETIMEvalueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGinRisk
– находится ли цель в зоне риска, возможные значение –true
илиfalse
, boolean. Для ключевых результатов – наследуется из родительской целиapprovedAt
:Дата и время подтверждения цели в формате ISO 8601 с указанием таймзоны, если руководитель или HR-сотрудник подтвердил цель, DATETIME
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
approvedById
:Идентификатор сотрудника, который подтвердил цель, если она подтверждена, STRING
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
completedAt
:Дата и время завершения цели в формате ISO 8601 с указанием таймзоны, если цель завершена, DATETIME
null
– если цель не завершенаДля ключевых результатов – наследуется из родительской цели
completedById
:Идентификатор сотрудника, который завершил цель, если она завершена, STRING
null
– если цель не была завершенаДля ключевых результатов – наследуется из родительской цели
keyResults
:Массив всех ключевых результатов, если они заданы. Структура каждого элемента массива результатов повторяет структуру элемента массива цели
null
– если для цели не заданы ключевые результаты или цель сама является ключевым результатом
Завершение цели пользователя
Чтобы завершить цель, нужно сделать POST запрос на адрес:
post
/public/api/v1/goals/{goalId}/complete
в адресе метода должен быть указан параметрgoalId
– уникальный идентификатор цели, должен совпадать c выбранным уникальным идентификатором на платформе, STRING. Обязательный параметр
В body запроса нужно отправить обязательный JSON, который содержит следующий параметр:
authorId
– уникальный идентификатор пользователя, от имени которого должна быть завершена цель, STRING. Обязательный параметр. Должен совпадать сid
руководителя пользователя или пользователя с разрешением План развития \ Управление целями и планами.
В случае успешного запроса (200) в ответ придёт JSON со следующими полями:
result
– должно вернуться значение truegoal
:id
– уникальный идентификатор цели, STRINGtitle
– название цели, STRINGvalue
– целевое значение цели, INTprogress
– текущее значение цели, INTpriority
– приоритет, установленный для цели, возможные значения -high
,medium
,low
, STRINGdeadlineAt
– дедлайн цели с указанием даты наступления дела в формате ISO 8601 с указанием таймзоны, DATETIMEvalueUnit
– единица измерения значений цели, возможные значения –percents
,numbers
,roubles
,dollars
,euros
,hours
, STRINGinRisk
– находится ли цель в зоне риска, возможные значение –true
илиfalse
, boolean. Для ключевых результатов – наследуется из родительской целиapprovedAt
:Дата и время подтверждения цели в формате ISO 8601 с указанием таймзоны, если руководитель или HR-сотрудник подтвердил цель, DATETIME
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
approvedById
:Идентификатор сотрудника, который подтвердил цель, если она подтверждена, STRING
null
– если цель не была подтверждена руководителем или HR-сотрудникомДля ключевых результатов – наследуется из родительской цели
completedAt
:Дата и время завершения цели в формате ISO 8601 с указанием таймзоны, если цель завершена, DATETIME
null
– если цель не завершенаДля ключевых результатов – наследуется из родительской цели
completedById
:Идентификатор сотрудника, который завершил цель, если она завершена, STRING