From 0fecbfca8a4268227a9c7e6479820925a0f0ac32 Mon Sep 17 00:00:00 2001 From: Gareth Coles Date: Sun, 11 Feb 2018 18:50:13 +0000 Subject: More error-hunting. Beats me why this documentation is so bad. --- pysite/views/api/asana.py | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'pysite') diff --git a/pysite/views/api/asana.py b/pysite/views/api/asana.py index e3d87f87..98f720b5 100644 --- a/pysite/views/api/asana.py +++ b/pysite/views/api/asana.py @@ -59,7 +59,7 @@ class IndexView(APIView): color=COLOUR_RED ) except Exception as e: - print(f"Fatal error sending webhook: {e}") + print(f"Fatal error sending webhook: {repr(e)}") return "", 200 # Empty 200 response @@ -101,21 +101,33 @@ class IndexView(APIView): resp.raise_for_status() user = resp.json() - project = task["projects"][0] # Just use the first project in the list - if user.get("photo"): photo = user["photo"]["image_128x128"] else: photo = None - self.send_webhook( - title=f"Comment: {project['name']}", - description=story["text"], - color=COLOUR_GREEN, - url=f"https://app.asana.com/0/{project['id']}/{parent}", - author_name=story["created_by"]["name"], - author_icon=photo - ) + if not task.get("projects"): + self.send_webhook( + title=f"Comment: Unknown Project/{task['name']}", + description=f"{story['text']}\n\n" + f"No project on task - Keys: `{', '.join(task.keys())}`", + color=COLOUR_GREEN, + url=f"https://app.asana.com/0/{project['id']}/{parent}", + author_name=story["created_by"]["name"], + author_icon=photo + ) + + else: + project = task["projects"][0] # Just use the first project in the list + + self.send_webhook( + title=f"Comment: {project['name']}", + description=story["text"], + color=COLOUR_GREEN, + url=f"https://app.asana.com/0/{project['id']}/{parent}", + author_name=story["created_by"]["name"], + author_icon=photo + ) else: pretty_story = json.dumps( story, @@ -138,7 +150,7 @@ class IndexView(APIView): task = resp.json() if action == "changed": # New comment! - if not task["user"]: + if not user: # ???????????????????????????? user = {} else: @@ -165,7 +177,8 @@ class IndexView(APIView): else: self.send_webhook( title=f"Task updated: Unknown Project/{task['name']}", - description="What was updated? We don't know!", + description=f"What was updated? We don't know!\n\n" + f"No project on task - Keys: `{', '.join(task.keys())}`", color=COLOUR_GREEN, author_name=user["name"], author_icon=photo -- cgit v1.2.3