Эта функция предназначена для получения отдельных строк при формировании общего текстового сообщения

Параметры функции:
  • 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")