Skip to content

Commit f2a8f0b

Browse files
committed
rm default
1 parent cdcd11d commit f2a8f0b

File tree

3 files changed

+31
-45
lines changed

3 files changed

+31
-45
lines changed

services/web/server/src/simcore_service_webserver/products/_api.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ def list_products(app: web.Application) -> list[Product]:
3838
return products
3939

4040

41-
def get_default_product_name(app: web.Application) -> str:
42-
# TODO: remove from api
43-
product_name: str = app[f"{APP_PRODUCTS_KEY}_default"]
44-
return product_name
45-
46-
4741
async def get_current_product_credit_price_info(
4842
request: web.Request,
4943
) -> ProductPriceInfo | None:

services/web/server/src/simcore_service_webserver/products/_middlewares.py

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@
77

88
from .._constants import APP_PRODUCTS_KEY, RQ_PRODUCT_KEY
99
from .._meta import API_VTAG
10-
from ._api import get_default_product_name
1110
from ._model import Product
1211

1312
_logger = logging.getLogger(__name__)
1413

1514

15+
def _get_default_product_name(app: web.Application) -> str:
16+
product_name: str = app[f"{APP_PRODUCTS_KEY}_default"]
17+
return product_name
18+
19+
1620
def _discover_product_by_hostname(request: web.Request) -> str | None:
1721
products: OrderedDict[str, Product] = request.app[APP_PRODUCTS_KEY]
1822
#
@@ -39,24 +43,22 @@ def _discover_product_by_request_header(request: web.Request) -> str | None:
3943
return None
4044

4145

42-
_INCLUDE_PATHS: set[str] = {"/static-frontend-data.json", "/socket.io/"}
43-
44-
4546
def _get_diagnose_msg(request: web.Request):
46-
return (
47-
"\n".join(
48-
[
49-
f"{request.url=}",
50-
f"{request.host=}",
51-
f"{request.remote=}",
52-
*[f"{k}:{request.headers[k][:20]}" for k in request.headers],
53-
f"{request.headers.get('X-Forwarded-Host')=}",
54-
f"{request.get(RQ_PRODUCT_KEY)=}",
55-
]
56-
),
47+
return "\n".join(
48+
[
49+
f"{request.url=}",
50+
f"{request.host=}",
51+
f"{request.remote=}",
52+
*[f"{k}:{request.headers[k][:20]}" for k in request.headers],
53+
f"{request.headers.get('X-Forwarded-Host')=}",
54+
f"{request.get(RQ_PRODUCT_KEY)=}",
55+
]
5756
)
5857

5958

59+
_INCLUDE_PATHS: set[str] = {"/static-frontend-data.json", "/socket.io/"}
60+
61+
6062
@web.middleware
6163
async def discover_product_middleware(request: web.Request, handler: Handler):
6264
"""
@@ -65,47 +67,39 @@ async def discover_product_middleware(request: web.Request, handler: Handler):
6567
- request[RQ_PRODUCT_KEY] is set to discovered product in 3 types of entrypoints
6668
- if no product discovered, then it is set to default
6769
"""
68-
request[RQ_PRODUCT_KEY] = get_default_product_name(request.app)
6970

7071
if (
7172
# - API entrypoints
7273
# - /static info for front-end
7374
request.path.startswith(f"/{API_VTAG}")
7475
or request.path in _INCLUDE_PATHS
7576
):
76-
request[RQ_PRODUCT_KEY] = _discover_product_by_request_header(
77-
request
78-
) or _discover_product_by_hostname(request)
79-
80-
if not request[RQ_PRODUCT_KEY]:
81-
bad_request_error = web.HTTPBadRequest(
82-
reason="web api request must define a product"
83-
)
84-
_logger.warning("%s:\n%s", bad_request_error, _get_diagnose_msg(request))
85-
raise bad_request_error
77+
request[RQ_PRODUCT_KEY] = (
78+
_discover_product_by_request_header(request)
79+
or _discover_product_by_hostname(request)
80+
or _get_default_product_name(request.app)
81+
)
8682

87-
elif (
83+
else:
8884
# - Publications entrypoint: redirections from other websites. SEE studies_access.py::access_study
8985
# - Root entrypoint: to serve front-end apps
90-
request.path.startswith("/study/")
91-
or request.path.startswith("/view")
92-
or request.path == "/"
93-
):
86+
# request.path.startswith("/study/")
87+
# or request.path.startswith("/view")
88+
# or request.path == "/" )
9489
request[RQ_PRODUCT_KEY] = _discover_product_by_hostname(
9590
request
96-
) and get_default_product_name(request.app)
91+
) or _get_default_product_name(request.app)
9792

98-
assert request[RQ_PRODUCT_KEY] # nosec
93+
# FIXME: session[product]
94+
# if product_session := get_session(request).get('product_name'):
95+
# assert get_product_name(request) == product_session
9996

10097
_logger.warning(
10198
"\n%s\n%s\n%s\n",
10299
"------------------TESTING-------------------",
103100
_get_diagnose_msg(request),
104101
"-------------------------------------------",
105102
)
106-
107-
assert request.get(RQ_PRODUCT_KEY) is not None or request.path.startswith( # nosec
108-
"/dev/doc"
109-
)
103+
assert request[RQ_PRODUCT_KEY] # nosec
110104

111105
return await handler(request)

services/web/server/src/simcore_service_webserver/products/api.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from ._api import (
44
get_credit_amount,
55
get_current_product,
6-
get_default_product_name,
76
get_product,
87
get_product_name,
98
get_product_stripe_info,
@@ -15,7 +14,6 @@
1514
__all__: tuple[str, ...] = (
1615
"get_credit_amount",
1716
"get_current_product",
18-
"get_default_product_name",
1917
"get_product_name",
2018
"get_product_stripe_info",
2119
"get_product_template_path",

0 commit comments

Comments
 (0)