Skip to content
Snippets Groups Projects
Commit da5bcde4 authored by Dmitry Mantis's avatar Dmitry Mantis Committed by Robert Habermann
Browse files

Fix bug with ticket_id not passing to _send_request in ticket_get_by_id, which…

parent 3f997212
No related branches found
No related tags found
No related merge requests found
...@@ -498,17 +498,10 @@ class Ticket(object): ...@@ -498,17 +498,10 @@ class Ticket(object):
""" """
def __init__(self, dct): def __init__(self, dct):
# store OTRS Top Level fields # store OTRS Top Level fields
fields = {} self.fields = {}
for key, value in dct.items(): self.fields.update(dct)
fields.update({key: dct[key]})
try:
self.tid = int(fields.get("TicketID"))
except TypeError:
self.tid = 0
self.fields = fields
self.tid = int(self.fields.get("TicketID", 0))
self.articles = self._parse_articles() self.articles = self._parse_articles()
self.fields.pop("Article", None) self.fields.pop("Article", None)
...@@ -516,26 +509,20 @@ class Ticket(object): ...@@ -516,26 +509,20 @@ class Ticket(object):
self.fields.pop("DynamicField", None) self.fields.pop("DynamicField", None)
def __repr__(self): def __repr__(self):
if self.tid is not 0: if self.tid:
return "<{0}: {1}>".format(self.__class__.__name__, self.tid) return "<{0}: {1}>".format(self.__class__.__name__, self.tid)
else: else:
return "<{0}>".format(self.__class__.__name__) return "<{0}>".format(self.__class__.__name__)
def _parse_articles(self): def _parse_articles(self):
"""parse Article from Ticket and return as **list** of **Article** objects""" """parse Article from Ticket and return as **list** of **Article** objects"""
lst = self.fields.get("Article") lst = self.fields.get("Article", [])
if lst: return [Article(item) for item in lst]
return [Article(item) for item in lst]
else:
return []
def _parse_dynamic_fields(self): def _parse_dynamic_fields(self):
"""parse DynamicField from Ticket and return as **list** of **DynamicField** objects""" """parse DynamicField from Ticket and return as **list** of **DynamicField** objects"""
lst = self.fields.get("DynamicField") lst = self.fields.get("DynamicField", [])
if lst: return [DynamicField.from_dct(item) for item in lst]
return [DynamicField.from_dct(item) for item in lst]
else:
return []
def to_dct(self, def to_dct(self,
articles=True, articles=True,
...@@ -565,9 +552,7 @@ class Ticket(object): ...@@ -565,9 +552,7 @@ class Ticket(object):
""" """
dct = {} dct = {}
dct.update(self.fields)
if self.fields:
dct.update(self.fields)
if articles: if articles:
try: try:
...@@ -598,11 +583,8 @@ class Ticket(object): ...@@ -598,11 +583,8 @@ class Ticket(object):
**Article** or **None** **Article** or **None**
""" """
result = [x for x in self.articles if x.field_get("ArticleID") == "{0}".format(aid)] result = [x for x in self.articles if x.field_get("ArticleID") == str(aid)]
if result: return result[0] if result else None
return result[0]
else:
return None
def dynamic_field_get(self, df_name): def dynamic_field_get(self, df_name):
"""dynamic_field_get """dynamic_field_get
...@@ -614,11 +596,8 @@ class Ticket(object): ...@@ -614,11 +596,8 @@ class Ticket(object):
**DynamicField** or **None** **DynamicField** or **None**
""" """
result = [x for x in self.dynamic_fields if x.name == "{0}".format(df_name)] result = [x for x in self.dynamic_fields if x.name == df_name]
if result: return result[0] if result else None
return result[0]
else:
return None
def field_get(self, f_name): def field_get(self, f_name):
return self.fields.get(f_name) return self.fields.get(f_name)
...@@ -1159,7 +1138,7 @@ class Client(object): ...@@ -1159,7 +1138,7 @@ class Client(object):
if not self.session_id_store.value: if not self.session_id_store.value:
raise SessionNotCreated("Call session_create() or " raise SessionNotCreated("Call session_create() or "
"session_restore_or_set_up_new() first") "session_restore_or_set_up_new() first")
self.operation = "TicketGetList" self.operation = "TicketGet"
payload = { payload = {
"SessionID": self.session_id_store.value, "SessionID": self.session_id_store.value,
...@@ -1170,7 +1149,8 @@ class Client(object): ...@@ -1170,7 +1149,8 @@ class Client(object):
"HTMLBodyAsAttachment": int(html_body_as_attachment), "HTMLBodyAsAttachment": int(html_body_as_attachment),
} }
if not self._parse_and_validate_response(self._send_request(payload)): response = self._send_request(payload, ticket_id)
if not self._parse_and_validate_response(response):
return False return False
else: else:
return self.result[0] return self.result[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment