Skip to content

Commit 1d7d3d8

Browse files
committed
generate requires product-origin-url
1 parent 2755211 commit 1d7d3d8

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

services/web/server/src/simcore_service_webserver/invitations/_rest.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from pydantic import Field
1212
from servicelib.aiohttp.requests_validation import parse_request_body_as
1313
from servicelib.request_keys import RQT_USERID_KEY
14-
from yarl import URL
1514

1615
from .._meta import API_VTAG as VTAG
1716
from ..constants import RQ_PRODUCT_KEY
@@ -53,21 +52,19 @@ async def generate_invitation(request: web.Request):
5352
extra_credits_in_usd=body.extra_credits_in_usd,
5453
product=req_ctx.product_name,
5554
),
55+
request.url,
5656
)
5757
assert request.url.host # nosec
5858
assert generated.product == req_ctx.product_name # nosec
5959
assert generated.guest == body.guest # nosec
6060

61-
url = URL(f"{generated.invitation_url}")
62-
invitation_link = request.url.with_path(url.path).with_fragment(url.raw_fragment)
63-
6461
invitation = InvitationGenerated(
6562
product_name=generated.product,
6663
issuer=generated.issuer,
6764
guest=generated.guest,
6865
trial_account_days=generated.trial_account_days,
6966
extra_credits_in_usd=generated.extra_credits_in_usd,
7067
created=generated.created,
71-
invitation_link=f"{invitation_link}", # type: ignore[arg-type]
68+
invitation_link=generated.invitation_url,
7269
)
7370
return envelope_json_response(invitation.model_dump(exclude_none=True))

services/web/server/src/simcore_service_webserver/invitations/_service.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
ApiInvitationInputs,
99
)
1010
from models_library.emails import LowerCaseEmailStr
11-
from pydantic import AnyHttpUrl, TypeAdapter, ValidationError
11+
from pydantic import AnyHttpUrl, HttpUrl, TypeAdapter, ValidationError
12+
from yarl import URL
1213

1314
from ..groups.api import is_user_by_email_in_group
1415
from ..products.models import Product
@@ -134,7 +135,9 @@ async def extract_invitation(
134135

135136

136137
async def generate_invitation(
137-
app: web.Application, params: ApiInvitationInputs
138+
app: web.Application,
139+
params: ApiInvitationInputs,
140+
product_origin_url: URL,
138141
) -> ApiInvitationContentAndLink:
139142
"""
140143
Raises:
@@ -145,4 +148,10 @@ async def generate_invitation(
145148
invitation: ApiInvitationContentAndLink = await get_invitations_service_api(
146149
app=app
147150
).generate_invitation(params)
151+
152+
_tmp_url = URL(f"{invitation.invitation_url}")
153+
invitation.invitation_url = HttpUrl(
154+
f"{product_origin_url.with_path(_tmp_url.path).with_fragment(_tmp_url.raw_fragment)}"
155+
)
156+
148157
return invitation

0 commit comments

Comments
 (0)