diff options
| -rw-r--r-- | pysite/views/api/asana.py | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/pysite/views/api/asana.py b/pysite/views/api/asana.py index 47c6aad8..bf4de90d 100644 --- a/pysite/views/api/asana.py +++ b/pysite/views/api/asana.py @@ -118,6 +118,40 @@ class IndexView(APIView):              )          session.close() +    def asana_task(self, *, resource, parent, created_at, user, action, type): +        session = requests.session() +        task = session.get(f"{TASK_URL}/{resource}").json() + +        if action == "changed":  # New comment! +            user = session.get(f"{USER_URL}/{user}").json() +            project = task["projects"][0]  # Just use the first project in the list + +            if user["photo"]: +                photo = user["photo"]["image_128x128"] +            else: +                photo = None + +            self.send_webhook( +                title=f"Task updated: {project['name']}/{task['name']}", +                description="What was updated? We don't know!", +                color=COLOUR_GREEN, +                url=f"https://app.asana.com/0/{project['id']}/{task['id']}", +                author_name=user["name"], +                author_icon=photo +            ) +        else: +            pretty_task = json.dumps( +                task, +                indent=4, +                sort_keys=True +            ) + +            self.send_webhook( +                title=f"Unknown task action: {action}", +                description=f"```json\n{pretty_task}\n```" +            ) +        session.close() +      def asana_unknown(self, *, resource, parent, created_at, user, action, type):          pretty_event = json.dumps(              { | 
