[+] 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):
|
class AssetHistoryResponse(pydantic.BaseModel):
|
||||||
action: Literal['asset_history']
|
action: Literal['asset_history'] = 'asset_history'
|
||||||
|
|
||||||
class message_t(pydantic.BaseModel):
|
class message_t(pydantic.BaseModel):
|
||||||
class point_t(pydantic.BaseModel):
|
class point_t(pydantic.BaseModel):
|
||||||
asset_name : Annotated[
|
asset_name : Annotated[
|
||||||
str,
|
str,
|
||||||
pydantic.Field(alias='assetName')
|
pydantic.Field(
|
||||||
|
alias='assetName',
|
||||||
|
)
|
||||||
]
|
]
|
||||||
time: int
|
time: int
|
||||||
asset_id : Annotated[
|
asset_id : Annotated[
|
||||||
@ -48,11 +51,13 @@ class AssetHistoryResponse(pydantic.BaseModel):
|
|||||||
message: message_t
|
message: message_t
|
||||||
|
|
||||||
class AssetTickerResponse(pydantic.BaseModel):
|
class AssetTickerResponse(pydantic.BaseModel):
|
||||||
action: Literal['point']
|
action: Literal['point'] = 'point'
|
||||||
|
|
||||||
message: 'AssetHistoryResponse.message_t.point_t'
|
message: 'AssetHistoryResponse.message_t.point_t'
|
||||||
|
|
||||||
class AssetsResponse(pydantic.BaseModel):
|
class AssetsResponse(pydantic.BaseModel):
|
||||||
action: Literal['asset_history']
|
action: Literal['asset_history'] = 'asset_history'
|
||||||
|
|
||||||
class message_t(pydantic.BaseModel):
|
class message_t(pydantic.BaseModel):
|
||||||
class asset_t(pydantic.BaseModel):
|
class asset_t(pydantic.BaseModel):
|
||||||
id: int
|
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_asset_id[last_asset_id]
|
||||||
del self.subscriptions_by_client[client]
|
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_asset_id[asset_id].add(client)
|
||||||
self.subscriptions_by_client[client] = asset_id
|
self.subscriptions_by_client[client] = asset_id
|
||||||
|
|
||||||
@ -59,10 +62,10 @@ class WebsocketAPI:
|
|||||||
)
|
)
|
||||||
|
|
||||||
await client.send_text(
|
await client.send_text(
|
||||||
schema.AssetHistoryResponse.model_validate(dict(
|
schema.AssetHistoryResponse(
|
||||||
message=dict(
|
message=schema.AssetHistoryResponse.message_t(
|
||||||
points=[
|
points=[
|
||||||
dict(
|
schema.AssetHistoryResponse.message_t.point_t.model_construct(
|
||||||
asset_name=o.market.name,
|
asset_name=o.market.name,
|
||||||
asset_id=o.market.id,
|
asset_id=o.market.id,
|
||||||
time=o.timestamp.timestamp(),
|
time=o.timestamp.timestamp(),
|
||||||
@ -71,7 +74,7 @@ class WebsocketAPI:
|
|||||||
for o in tickers
|
for o in tickers
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
)).json(),
|
).json(by_alias=True,),
|
||||||
)
|
)
|
||||||
|
|
||||||
async def assets_index(
|
async def assets_index(
|
||||||
|
Loading…
Reference in New Issue
Block a user