Skip to content

Commit 9b8b890

Browse files
authored
fix: correct response body for 'GET /orders' (jordan-dimov#19)
1 parent 1468f10 commit 9b8b890

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

ctenex/api/v1/controllers/exchange.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
from ctenex.domain.order_book.contract.reader import contracts_reader
1111
from ctenex.domain.order_book.contract.schemas import ContractGetResponse
1212
from ctenex.domain.order_book.order.model import Order
13-
from ctenex.domain.order_book.order.schemas import OrderAddRequest, OrderAddResponse
13+
from ctenex.domain.order_book.order.schemas import (
14+
OrderAddRequest,
15+
OrderAddResponse,
16+
OrderGetResponse,
17+
)
1418

1519
router = APIRouter(tags=["exchange"])
1620

@@ -30,11 +34,11 @@ async def place_order(
3034

3135

3236
@router.get("/orders")
33-
async def get_order(
37+
async def get_orders(
3438
contract_id: ContractCode,
35-
) -> list[Order]:
39+
) -> list[OrderGetResponse]:
3640
orders: list[Order] = await matching_engine.get_orders(contract_id)
37-
return orders
41+
return [OrderGetResponse(**order.model_dump(exclude_none=True)) for order in orders]
3842

3943

4044
@router.get("/supported-contracts")

ctenex/domain/order_book/order/schemas.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from datetime import datetime
12
from decimal import Decimal
23
from uuid import UUID
34

@@ -24,3 +25,16 @@ class OrderAddResponse(BaseModel):
2425
price: Decimal | None = None
2526
quantity: Decimal
2627
status: OrderStatus
28+
29+
30+
class OrderGetResponse(BaseModel):
31+
id: UUID
32+
contract_id: str
33+
trader_id: UUID
34+
side: OrderSide
35+
type: OrderType
36+
price: Decimal | None = None
37+
quantity: Decimal
38+
status: OrderStatus
39+
remaining_quantity: Decimal | None = None
40+
placed_at: datetime

0 commit comments

Comments
 (0)