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 SendSchema(Schema): body = fields.Str(required=True) topic = fields.Str(required=True) class Send(AuthResource): clients = None schema = None def __init__(self): super().__init__() self.schema = SendSchema() def post(self): args = request.get_json() errors = self.schema.validate(args) if errors: abort(400, message=str(errors)) allow = self.auth(request) if allow: body = args.get("body") topic = args.get("topic") outbox_queue = self.client["client_id"] + "-outbox" message = { "topic": topic, "message": body, } write_to_queue(queue_name=outbox_queue, msg=json.dumps(message))