diff --git a/server/orders.py b/server/orders.py index 4a87879..6062739 100644 --- a/server/orders.py +++ b/server/orders.py @@ -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] diff --git a/server/tests/test_orders.py b/server/tests/test_orders.py index 83127d6..e8dcc8b 100644 --- a/server/tests/test_orders.py +++ b/server/tests/test_orders.py @@ -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,