receive.py 800 Bytes
Newer Older
1
from flask_restful import abort, request
2
from marshmallow import Schema, fields
3

4
from endpoints.auth_resource import AuthResource
5
from rmq import read_from_queue
6 7


8
class ReceiveQuerySchema(Schema):
9 10 11
    max_messages = fields.Int(required=False)


12
class Receive(AuthResource):
13 14 15 16
    clients = None
    schema = None

    def __init__(self):
17
        super().__init__()
18
        self.schema = ReceiveQuerySchema()
19 20 21 22

    def get(self):
        errors = self.schema.validate(request.args)
        if errors:
23
            abort(400, message=str(errors))
24 25

        max_messages = request.args.get("max_messages", 10)
26

27 28 29
        allow = self.auth(request)
        if allow:
            inbox_queue = self.client['client_id'] + "-inbox"
30
            return read_from_queue(queue_name=inbox_queue, max_msgs=max_messages)