Эта функция предназначена для получения отдельных строк при формировании общего текстового сообщения
Параметры функции:
payload: объект классаWebhook, передаваемый для формирования отдельной строки, соответствующей полю внутри передаваемого/вложенного объектаfield,field: типstring, содержит имя поля внутри передаваемого/вложенного объекта либо абстрактное имя (если нужно обработать несколько полей объекта), для извлечения информации,lang: объект типаstring- строка, содержащаяключязыка для выбора соответствующего шаблона при подготовке строки.
Результат работы функции:
- объект типа
string, содержащий информацию, извлеченную из переданного объекта
Исключения:
MessageFormatterError: вызывается, если для при вызове функции get_changes возвращена пустая строка.
Алгоритм работы функции:
В соответствии со значением аргумента, переданного в параметр field функции производится переход к соответствующему действию, описанному ниже и формируется текстовая строка, возвращаемая в качестве результата.
Важно: Предполагается что шаблон (см.подробности), используемый для формирования сообщения составлен правильно и содержит значения полей, гарантированно имеющиеся в переданном объекте payload для сочетания полей type, action данного объекта.
Если искомые поля для формирования строк отсутствуют в переданном для обработки объекте payload, то работа функции завершится с ошибкой. Предварительная проверка на наличие в объекте запрошенного поля перед обработкой данной функцией не производится.
Отдельные поля в переданном объекте payload могут иметь значение null или false. В этом случае формирование строки для таких полей не производится, они возвращаются в основную функцию в виде пустых строк.
Ниже приведены особенности формирования строковых сообщения для отдельных полей/абстрактных имен:
action- из атрибутаactionобъектаpayloadформируется строка с указанием типа произошедшего события, при этом проверяется наличие комбинации отдельных полей для объекта типаuserstory, указывающее на наследование даннойuserstoryотtask,issue;object_of_action(абстрактное имя) - вызываемой функцией get_object_with_url_string формируется строка, содержащая тип объекта, имя объекта (если оно есть) и ссылку (url) на него;parents(абстрактное имя) - вызываемой функцией get_parents_string формируется строка, содержащая родительские объекты, обрабатываемого объекта;timestamp(абстрактное имя) - из атрибутаdateобъектаpayloadформируется строка, содержащая информацию о времени возникновения обрабатываемого события;by_fullname- из атрибутаfull_nameвложенного объектаpayload.byформируется строка, содержащая имя автора обрабатываемого события;assigned_to(дополнительная проверка на значение не равноеnull/false) - вызываемой функцией get_assigned_to_string формируется строка, содержащая информацию о назначенных ответственных за выполнение обрабатываемого объектаchange- вызываемой функцией get_changes формируется набор строк, содержащий информацию о произведенных изменениях с обрабатываемым объектом. В некоторых случаях (подробности в описании функции get_changes) функцияget_changesвозвращает пустую строку. В этом случае нет смысла продолжать формирование итогового сообщения, так как оно не содержит полезной информации. Вызывается исключениеMessageFormatterError;status- из атрибутаstatusвложенного объектаpayload.dataформируется строка, содержащая статус обрабатываемого объекта;due_date(дополнительная проверка на значение не равноеnull/false) - из атрибутаdue_dateвложенного объектаpayload.dataформируется строка, содержащая информацию о дедлайне для пользовательской истории, задачи или запроса;estimated_finish- из атрибутаestimated_finishвложенного объектаpayload.dataформируется строка, содержащая информацию о планируемой дате завершения спринта;tags(дополнительная проверка на значение не равноеnull/false) - из атрибутаtagsвложенного объектаpayload.dataформируется строка, содержащая список тэгов обрабатываемого объекта;is_iocaine(дополнительная проверка на значение не равноеnull/false) - из атрибутаis_iocaineвложенного объектаpayload.dataформируется строка, содержащая информацию о наличии метки “Йокаин”;type- из атрибутаtypeвложенного объектаpayload.dataформируется строка, содержащая значение типа для обрабатываемого объекта типа Task;priority- из атрибутаpriorityвложенного объектаpayload.dataформируется строка, содержащая значение приоритета для обрабатываемого объекта типаTask;severity- из атрибутаseverityвложенного объектаpayload.dataформируется строка, содержащая значение важности для обрабатываемого объекта типаTask;points- вызываемой функцией get_points_string формируется строка, содержащая информацию о очках за различные направления разработки, а также суммарном количестве очков;client_requirement(дополнительная проверка на значение не равноеnull/false) - из атрибутаclient_requirementвложенного объектаpayload.dataформируется строка, отображающая метку “Требование клиента.” для обрабатываемого объекта типаUserstory/Task;team_requirement(дополнительная проверка на значение не равное null/false) - из атрибутаteam_requirementвложенного объектаpayload.dataформируется строка, отображающая метку “Требование команды.” для обрабатываемого объекта типаUserstory/Task;
В случае если значение переданного аргумента в параметр field не соответствует ни одному из приведенных выше образцов, возвращается пустая текстовая строка
Пример вызова функции:
field_string = get_string(payload=payload, field="template_field_name", lang="en")