diff options
Diffstat (limited to 'pysite/views/staff/jams/actions.py')
-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 |