[+] improve asset_history
This commit is contained in:
parent
17bfb08e43
commit
f4831d5759
13
deps/test-task-2025-06-30-v1/python/online/fxreader/pr34/test_task_2025_06_30_v1/async_api/schema.py
vendored
13
deps/test-task-2025-06-30-v1/python/online/fxreader/pr34/test_task_2025_06_30_v1/async_api/schema.py
vendored
@ -30,12 +30,15 @@ Action = pydantic.RootModel[
|
||||
]
|
||||
|
||||
class AssetHistoryResponse(pydantic.BaseModel):
|
||||
action: Literal['asset_history']
|
||||
action: Literal['asset_history'] = 'asset_history'
|
||||
|
||||
class message_t(pydantic.BaseModel):
|
||||
class point_t(pydantic.BaseModel):
|
||||
asset_name : Annotated[
|
||||
str,
|
||||
pydantic.Field(alias='assetName')
|
||||
pydantic.Field(
|
||||
alias='assetName',
|
||||
)
|
||||
]
|
||||
time: int
|
||||
asset_id : Annotated[
|
||||
@ -48,11 +51,13 @@ class AssetHistoryResponse(pydantic.BaseModel):
|
||||
message: message_t
|
||||
|
||||
class AssetTickerResponse(pydantic.BaseModel):
|
||||
action: Literal['point']
|
||||
action: Literal['point'] = 'point'
|
||||
|
||||
message: 'AssetHistoryResponse.message_t.point_t'
|
||||
|
||||
class AssetsResponse(pydantic.BaseModel):
|
||||
action: Literal['asset_history']
|
||||
action: Literal['asset_history'] = 'asset_history'
|
||||
|
||||
class message_t(pydantic.BaseModel):
|
||||
class asset_t(pydantic.BaseModel):
|
||||
id: int
|
||||
|
11
deps/test-task-2025-06-30-v1/python/online/fxreader/pr34/test_task_2025_06_30_v1/async_api/websocket_api.py
vendored
11
deps/test-task-2025-06-30-v1/python/online/fxreader/pr34/test_task_2025_06_30_v1/async_api/websocket_api.py
vendored
@ -42,6 +42,9 @@ class WebsocketAPI:
|
||||
del self.subscriptions_by_asset_id[last_asset_id]
|
||||
del self.subscriptions_by_client[client]
|
||||
|
||||
if not asset_id in self.subscriptions_by_asset_id:
|
||||
self.subscriptions_by_asset_id[asset_id] = set()
|
||||
|
||||
self.subscriptions_by_asset_id[asset_id].add(client)
|
||||
self.subscriptions_by_client[client] = asset_id
|
||||
|
||||
@ -59,10 +62,10 @@ class WebsocketAPI:
|
||||
)
|
||||
|
||||
await client.send_text(
|
||||
schema.AssetHistoryResponse.model_validate(dict(
|
||||
message=dict(
|
||||
schema.AssetHistoryResponse(
|
||||
message=schema.AssetHistoryResponse.message_t(
|
||||
points=[
|
||||
dict(
|
||||
schema.AssetHistoryResponse.message_t.point_t.model_construct(
|
||||
asset_name=o.market.name,
|
||||
asset_id=o.market.id,
|
||||
time=o.timestamp.timestamp(),
|
||||
@ -71,7 +74,7 @@ class WebsocketAPI:
|
||||
for o in tickers
|
||||
]
|
||||
)
|
||||
)).json(),
|
||||
).json(by_alias=True,),
|
||||
)
|
||||
|
||||
async def assets_index(
|
||||
|
Loading…
Reference in New Issue
Block a user