import json from flask_restful import abort, request from marshmallow import Schema, fields from endpoints.auth_resource import AuthResource from rmq import write_to_queue class NotifySchema(Schema): body = fields.Str(required=True) class Notify(AuthResource): clients = None schema = None def __init__(self): super().__init__() self.schema = NotifySchema() def post(self): args = request.get_json() errors = self.schema.validate(args) if errors: abort(400, message=str(errors)) allow = False body = args.get("body") message = { 'topic': 'broadcast', 'message': body, } allow = self.auth(request) if allow: notify_queue = self.client['client_id'] + "-broadcast" write_to_queue(queue_name=notify_queue, msg=json.dumps(message))