Эта функция предназначена для обработки информации связанной с вложениями объекта

Параметры функции:
  • attachments: объект класса DiffAttachments, переданный для обработки,
  • lang: объект типа string - строка, содержащая “ключ” языка для выбора соответствующего шаблона при подготовке строки.
Результат работы функции:
  • объект типа string, содержащий извлеченную информацию.
Алгоритм работы функции:

В зависимости от действий с вложениями возможны следующие значения атрибутов переданного объекта attachments:

ДействиеЗначение атрибутов в необработанном WebHook:
добавление вложенийdata”: {

  “change”: {

“diff”: {
      “attachments”: {
        “new”: [
          {
            “id”: 1,
            “filename”: “filename.ext”,
            “url”: “http://permalink_to_file”,
            “attached_file”: “path_to_file/filename.ext”,
            “thumbnail_file”: null,
            “is_deprecated”: false,
            “description”: "",
            “order”: 0
          },
{
            “id”: 2,
            “filename”: “filename.ext”,
            “url”: “http://permalink_to_file”,
            “attached_file”: “path_to_file/filename.ext”,
            “thumbnail_file”: null,
            “is_deprecated”: false,
            “description”: "",
            “order”: 0
          },
        ],
        “changed”: [],
        “deleted”: []
      }
    }
  }
}
изменение вложенийdata”: {

  “change”: {

diff”: {
attachments”: {
new”: [],
changes”: {
description”: [
"",
“test”
],
is_deprecated”: [
false,
true
]
}
deleted”: []
}
}
}
удаление вложенийdata”: {

diff”: {
attachments”: {
new”: [],
changed”: [],
deleted”: [
{
id”: 1,
url”: “http://permalink_to_file”
filename”: “filename.ext”,
description”: "",
attached_file”: “path_to_file/filename.ext”,
is_deprecated”: false,
thumbnail_file”: null
}
]
}
}
}
В зависимости от значения атрибута new, changed, deleted определяется вид действия с вложениями.
Вложения могут быть добавлены группой (сразу несколько файлов). Удаление и изменение вложений возможно только по одному вложению за операцию.
В существующем вложении могут быть изменены: описание (атрибут - description) и метка “устаревший” (is_deprecated). При этом в сформированном WebHook отсутствует информация о том, какой именно объект изменен. Поэтому функцией формируется абстрактное текстовое сообщение, не содержащее подробностей о измененном файле.
Пример вызова функции:
attachment_string = get_attachment_string(
	attachments=payload.change.diff.attachments, lang="en")