mirror of
https://github.com/Blockstream/satellite-api.git
synced 2025-02-22 05:41:37 +01:00
Add date filter and paging on all orders/ states
- Add date filtering (before parameter) to /queued. - Add page limit to /sent and /pending.
This commit is contained in:
parent
9d421771e7
commit
d8e7516f01
2 changed files with 6 additions and 5 deletions
|
@ -182,20 +182,21 @@ class OrdersResource(Resource):
|
|||
return error.messages, HTTPStatus.BAD_REQUEST
|
||||
|
||||
before = db.func.datetime(args['before'])
|
||||
limit = args['limit']
|
||||
|
||||
if state == 'pending':
|
||||
orders = Order.query.filter_by(
|
||||
status=OrderStatus[state].value).\
|
||||
filter(db.func.datetime(Order.created_at) < before).\
|
||||
order_by(Order.created_at.desc()).\
|
||||
limit(constants.PAGE_SIZE)
|
||||
limit(limit)
|
||||
elif state == 'queued':
|
||||
limit = args['limit']
|
||||
orders = Order.query.filter(or_(
|
||||
Order.status ==
|
||||
OrderStatus.pending.value,
|
||||
Order.status ==
|
||||
OrderStatus.transmitting.value)).\
|
||||
filter(db.func.datetime(Order.created_at) < before).\
|
||||
order_by(Order.bid_per_byte.desc()).limit(limit)
|
||||
elif state == 'sent':
|
||||
orders = Order.query.filter(or_(
|
||||
|
@ -205,7 +206,7 @@ class OrdersResource(Resource):
|
|||
OrderStatus.received.value)).\
|
||||
filter(db.func.datetime(Order.created_at) < before).\
|
||||
order_by(Order.ended_transmission_at.desc()).\
|
||||
limit(constants.PAGE_SIZE)
|
||||
limit(limit)
|
||||
|
||||
return [order_schema.dump(order) for order in orders]
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ def test_try_to_get_invalid_order_state(client):
|
|||
|
||||
@patch('constants.PAGE_SIZE', 3) # change PAGE_SIZE to run this test faster
|
||||
@patch('orders.new_invoice')
|
||||
@pytest.mark.parametrize("state", ['pending', 'sent'])
|
||||
@pytest.mark.parametrize("state", ['pending', 'queued', 'sent'])
|
||||
def test_get_orders_before_parameter(mock_new_invoice, client, state):
|
||||
# Create PAGE_SIZE orders with the target state
|
||||
n_orders = constants.PAGE_SIZE
|
||||
|
@ -106,7 +106,7 @@ def test_get_orders_before_parameter(mock_new_invoice, client, state):
|
|||
|
||||
|
||||
@patch('orders.new_invoice')
|
||||
@pytest.mark.parametrize("state", ['queued'])
|
||||
@pytest.mark.parametrize("state", ['pending', 'queued', 'sent'])
|
||||
def test_get_orders_limit_parameter(mock_new_invoice, client, state):
|
||||
n_bytes = 500
|
||||
mock_new_invoice.return_value = (True,
|
||||
|
|
Loading…
Add table
Reference in a new issue