Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Correctly generate invitation URLs for peer DIDs in /connections… #1510

Merged
merged 1 commit into from
Feb 21, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ async def connections_invitation(request: web.BaseRequest):

profile = context.profile
base_url = profile.settings.get("invite_base_url")

if not base_url:
base_url = profile.settings.get("default_endpoint")
if base_url:
LOGGER.debug(
"Using 'default_endpoint' as base URL for invitation because 'invite_base_url' is not configured."
)
else:
LOGGER.debug(
"Neither 'invite_base_url' nor 'default_endpoint' are configured. Invitation URL might be incomplete."
)
base_url = ""

try:
async with profile.session() as session:
connection = await ConnRecord.retrieve_by_id(session, connection_id)
Expand All @@ -49,13 +62,18 @@ async def connections_invitation(request: web.BaseRequest):
except BaseModelError as err:
raise web.HTTPBadRequest(reason=err.roll_up) from err

invitation_url = invitation.to_url(base_url)
invitation_url = invitation.to_url(base_url) # Let's see what to_url produces

# Always prepend base_url if to_url returns only query params
if invitation_url.startswith("?"): # Check if to_url returned only query params
constructed_invitation_url = f"{base_url}{invitation_url}"
else:
constructed_invitation_url = invitation_url # Assume to_url worked correctly

result = {
"connection_id": connection_id,
"invitation": invitation.serialize(),
"invitation_url": f"{invitation.endpoint}{invitation_url}"
if invitation_url.startswith("?")
else invitation_url,
"invitation_url": constructed_invitation_url,
}
if connection.alias:
result["alias"] = connection.alias
Expand Down
Loading