Coverage for api/handlers/authorization/confidential.py: 22%
21 statements
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
1from contextlib import suppress
2from typing import Any
4from sotrans_models.models.orders.order import OrderDBModel
6# Models and if dicts are converting after needs
7# `response_model_exclude_unset = True` in router method decorator
10def hide_dict_fields_from_carrier(order_data: dict[str, Any]):
11 order_data.pop("client", None)
12 order_data.pop("external", None)
13 order_data.pop("updated", None)
14 order_data.pop(OrderDBModel.client_price, None)
15 with suppress(KeyError, AttributeError):
16 order_data["best_bid"].pop("client_id", None)
17 with suppress(KeyError, AttributeError):
18 order_data["your_bid"].pop("client_id", None)
21def hide_model_fields_from_carrier(order_to_update: OrderDBModel):
22 order_to_update.client = None
23 order_to_update.external = None
24 order_to_update.updated = None
25 order_to_update.client_price = None
26 if order_to_update.best_bid:
27 order_to_update.best_bid.client_id = None
28 order_to_update.best_bid.model_fields_set.remove("client_id")
29 order_to_update.model_fields_set.difference_update(
30 {"client", "external", "updated", "client_price"}
31 )