Esempio n. 1
0
async def get_devices(gateway_hid: Optional[str] = Query(None,
                                                         alias="gatewayHid")):
    devices = await KronosDevices.get(gateway_hid=gateway_hid)
    device_array = [{**device} for device in devices]

    content = paginate_response(entities=device_array,
                                max_page_size=len(devices))
    return JSONResponse(content=content, headers=kronos_headers)
Esempio n. 2
0
async def get_history(size: int = 10, page: int = 1):
    count_all = await FeedingResult.count()
    history = await FeedingResult.get(offset=page * size, limit=size)
    return paginate_response(
        entities=[{**result} for result in history],
        current_page=page,
        max_page_size=size,
        total_override=count_all,
    )
Esempio n. 3
0
def test_pagination_with_six_items_three_per_page():
    from feeder.util.feeder import paginate_response

    items = ["item1", "item2", "item3", "item4", "item5", "item6"]

    page1 = paginate_response(items, max_page_size=3)
    assert page1["size"] == 3
    assert page1["data"] == ["item1", "item2", "item3"]
    assert page1["page"] == 1
    assert page1["totalSize"] == 6
    assert page1["totalPages"] == 2

    page2 = paginate_response(items, current_page=2, max_page_size=3)
    assert page2["size"] == 3
    assert page2["data"] == ["item4", "item5", "item6"]
    assert page2["page"] == 2
    assert page2["totalSize"] == 6
    assert page2["totalPages"] == 2
Esempio n. 4
0
async def get_gateways():
    all_gateways = await KronosGateways.get()
    formatted_feeders = [{
        "pri": f"arw:pgs:gwy:{gateway['hid']}",
        **gateway
    } for gateway in all_gateways]

    return paginate_response(entities=formatted_feeders,
                             max_page_size=len(formatted_feeders))
Esempio n. 5
0
def test_pagination_with_three_items_three_per_page_override_size():
    from feeder.util.feeder import paginate_response

    items = ["item1", "item2", "item3"]
    page = paginate_response(items, max_page_size=3, total_override=100)
    assert page["size"] == 3
    assert page["data"] == items
    assert page["page"] == 1
    assert page["totalSize"] == 100
    assert page["totalPages"] == 34
Esempio n. 6
0
def test_pagination_with_no_items():
    from feeder.util.feeder import paginate_response

    items = []
    page = paginate_response(items)
    assert page["size"] == 0
    assert page["data"] == items
    assert page["page"] == 1
    assert page["totalSize"] == 0
    assert page["totalPages"] == 0