diff options
author | 2018-06-12 13:47:01 +0100 | |
---|---|---|
committer | 2018-06-12 13:47:01 +0100 | |
commit | c60d6c275cedef8c1ec4a7801ae8a1a5ba33adbd (patch) | |
tree | 6c05fc6eaba6d89d62cb127abc8a53d157595ebe | |
parent | [Jams] Approvals interface (diff) |
[Jams] Role assignment on approval/unapproval
-rw-r--r-- | pysite/views/staff/jams/actions.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/pysite/views/staff/jams/actions.py b/pysite/views/staff/jams/actions.py index ba5a66e9..c6e55931 100644 --- a/pysite/views/staff/jams/actions.py +++ b/pysite/views/staff/jams/actions.py @@ -1,9 +1,9 @@ from flask import jsonify, request from pysite.base_route import APIView -from pysite.constants import ALL_STAFF_ROLES, ErrorCodes +from pysite.constants import ALL_STAFF_ROLES, ErrorCodes, BotEventTypes, JAMMERS_ROLE from pysite.decorators import csrf, require_roles -from pysite.mixins import DBMixin +from pysite.mixins import DBMixin, RMQMixin GET_ACTIONS = ["questions"] POST_ACTIONS = [ @@ -16,7 +16,7 @@ KEYS = ["action"] QUESTION_KEYS = ["optional", "title", "type"] -class ActionView(APIView, DBMixin): +class ActionView(APIView, DBMixin, RMQMixin): path = "/jams/action" name = "jams.action" @@ -221,6 +221,15 @@ class ActionView(APIView, DBMixin): jam_obj["participants"] = participants self.db.insert(self.table_name, jam_obj, conflict="replace") + self.rmq_bot_event( + BotEventTypes.add_role, + { + "reason": "Code jam application approved", + "role_id": JAMMERS_ROLE, + "target": snowflake, + } + ) + return jsonify({"result": "success"}) if action == "unapprove_application": @@ -253,6 +262,15 @@ class ActionView(APIView, DBMixin): self.db.insert(self.table_name, jam_obj, conflict="replace") + self.rmq_bot_event( + BotEventTypes.remove_role, + { + "reason": "Code jam application unapproved", + "role_id": JAMMERS_ROLE, + "target": snowflake, + } + ) + return jsonify({"result": "success"}) @csrf |