Skip to content

Commit

Permalink
Merge pull request #1510 from MonolithicMonk/fix-peer-did-invitation-url
Browse files Browse the repository at this point in the history
Fix: Correctly generate invitation URLs for peer DIDs in /connections…
  • Loading branch information
loneil authored Feb 21, 2025
2 parents 7f7e40f + 226da22 commit a50e9ec
Showing 1 changed file with 22 additions and 4 deletions.
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

0 comments on commit a50e9ec

Please sign in to comment.