Как установить права на тикет в клиентской библиотеке Zenpy python

1

Я интегрирую API Zendesk ITSM в свою библиотеку python с помощью клиента Zenpy.

Для создания билета с помощью zenpy-клиента я могу установить репортера билета по идентификатору электронной почты, но для цессионария я не могу установить цессионария по идентификатору электронной почты.

Это код, который я пробовал до сих пор.

ticket_payload = Ticket(
    description="some description",
    type="task",
    priority="high",
    status="open"
    )

ticket_payload.requester = User(email="[email protected]"])
ticket_payload.assignee = User(email="[email protected]")

response = self.zenpy_client.tickets.create(ticket_payload)

Ответный билет, который я получаю, имеет набор репортеров, но assigneee - None.

Если я передам идентификатор вместе с адресом электронной почты, как

ticket_payload.assignee = User(id= 354876354,email="[email protected]")

то он работает, и я вижу, что цессионарий настроен на билет. Но это не требуется для репортера.

Это дурное поведение дзенпи, или я что-то упускаю?

Теги:
zendesk
zendesk-api
itsm

1 ответ

1

Мне потребовалось некоторое время, но я думаю, что понимаю вашу проблему. Из документа в разделе "Объекты API" в разделе "Свойства объекта":

Когда доступ к атрибуту assignee, Zenpy сначала пытается найти связанного пользователя в кеше Пользователя, и если он не может быть найден, генерирует и выполняет вызов API для извлечения, создания, кэширования и возврата объекта.

Я ошибочно предположил, что это означает, что я могу установить значение атрибута assignee, и zenpy будет искать его, а затем поместить идентификатор в поле assignee_id. Это неправильная интерпретация. Цитата означает, что если вы установите assignee_id, а затем попытаетесь получить доступ к атрибуту assignee, он будет искать его и вернуть. Но должен быть идентификатор.

В следующем разделе документов:

Важно отметить, что большинство разработчиков свойств выбрасывают всю информацию, кроме идентификатора. Это связано с тем, что Zendesk ожидает только id, поэтому любые изменения, внесенные в объект, не будут сохраняться автоматически.

Поэтому, когда вы устанавливаете правопреемника или запросчика без идентификатора, адрес электронной почты отбрасывается, а соответствующий идентификатор - None.

Что касается того, почему установлен идентификатор запроса, он, вероятно, установлен для пользователя, который используется для аутентификации запроса, а не для указанного.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню