Skip to content

Commit fa8e241

Browse files
🐛 fix: Extract domain from URL in /v1/breaches and re-raise HTTPException
1 parent ca37ae5 commit fa8e241

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

‎api/v1/breaches.py‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import json
55
from datetime import datetime
66
from typing import Optional, Union
7+
from urllib.parse import urlparse
78

89
# Third-party imports
910
from fastapi import APIRouter, Header, HTTPException, Path, Query, Request
@@ -62,8 +63,14 @@ async def get_xposed_breaches(
6263
raise HTTPException(status_code=400, detail="Invalid Breach ID")
6364
query.key_filter(client.key("xon_breaches", breach_id), "=")
6465
elif domain:
66+
# Try to extract domain from URL if a full URL is provided
6567
if not validate_domain(domain):
66-
raise HTTPException(status_code=400, detail="Invalid Domain")
68+
parsed = urlparse(domain)
69+
extracted = parsed.netloc or parsed.path.strip("/")
70+
if extracted and validate_domain(extracted):
71+
domain = extracted
72+
else:
73+
raise HTTPException(status_code=400, detail="Invalid Domain")
6774
query.add_filter("domain", "=", domain)
6875
else:
6976
query.order = ["-timestamp"]
@@ -131,6 +138,8 @@ async def get_xposed_breaches(
131138

132139
return BreachListResponse(status="success", exposedBreaches=breach_details)
133140

141+
except HTTPException:
142+
raise
134143
except Exception as e:
135144
await send_exception_email(
136145
api_route="GET /v1/breaches",

0 commit comments

Comments
 (0)