コード例 #1
0
    def route_requests(self, req, body):
        owner_id = req.getHeader('x-owner-id')
        req_limit = self.config.request_limit

        if (yield self.req_limit_reached(owner_id)):
            self.log(
                "Request limit reached for %s at a request count of %d"
                % (owner_id, req_limit))

            returnValue(response(req, {
                'errors': [{
                    'type': 'too_many_requests',
                    'message': (
                        "Only %d unfinished requests are allowed per owner"
                        % (req_limit))
                }]
            }, code=429))
        else:
            data = {
                'owner_id': req.getHeader('x-owner-id'),
                'timestamp': time.time(),
                'request': body['request'],
                'intervals': body['intervals']
            }

            self.log("Adding request to pending set", data)
            yield add_pending(self.redis, self.prefix, data)
            yield inc_req_count(self.redis, self.prefix, owner_id)
            returnValue(response(req, {}))
コード例 #2
0
        def wrapper(api, req, *a, **kw):
            errors = []

            for v in validators:
                errors.extend(v(req, *a, **kw) or [])

            if not errors:
                return fn(api, req, *a, **kw)
            else:
                return response(req, {'errors': errors}, code=http.BAD_REQUEST)
コード例 #3
0
 def route_health(self, req):
     return response(req, {})
コード例 #4
0
 def route(req):
     return response(req, {}, http.BAD_REQUEST)
コード例 #5
0
 def route(req):
     return response(req, {})
コード例 #6
0
 def route(req):
     return response(req, {'foo': 23})