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

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