from flask_restful import abort, request from marshmallow import Schema, fields from endpoints.auth_resource import AuthResource from rmq import read_from_queue class ReceiveQuerySchema(Schema): max_messages = fields.Int(required=False) class Receive(AuthResource): clients = None schema = None def __init__(self): super().__init__() self.schema = ReceiveQuerySchema() def get(self): errors = self.schema.validate(request.args) if errors: abort(400, message=str(errors)) # force query string parameter value into int max_messages = int(request.args.get("max_messages", 10)) allow = self.auth(request) if allow: inbox_queue = self.client["client_id"] + "-inbox" return read_from_queue(queue_name=inbox_queue, max_msgs=max_messages)