예제 #1
0
def test_queue_request_store_json(api_server, redis):
    url = urljoin(api_server, '/callbacks/app/queue/')
    yield from aiohttp.request('POST', url, data=json_payload,
                               headers={'X-Region': 'Sao_Paulo'})

    db_json = decode_json(redis.rpop('app-queue').decode('utf-8'))

    assert db_json['header']['X-REGION'] == 'Sao_Paulo'
    assert db_json['method'] == 'POST'
    assert db_json['data'] == payload
예제 #2
0
파일: api.py 프로젝트: wiliamsouza/echod
def last_callback(request):
    app = request.match_info['app']
    queue = request.match_info['queue']
    key = yield from generate_key(app, queue)

    with (yield from request.app['redis_pool']) as redis:
        request_ = yield from redis.rpop(key)
        request_ = decode_json(request_)

    data = json.dumps({'request': request_})
    return web.Response(text=data, content_type='application/json')
예제 #3
0
파일: api.py 프로젝트: wiliamsouza/echod
def all_callback(request):
    app = request.match_info['app']
    queue = request.match_info['queue']
    key = yield from generate_key(app, queue)

    with (yield from request.app['redis_pool']) as redis:
        requests = yield from redis.lrange(key, 0, -1)
        requests = [decode_json(r) for r in requests]
        redis.delete(key)

    data = json.dumps({'requests': requests})
    return web.Response(text=data, content_type='application/json')