Skip to content

Commit 0caea44

Browse files
committed
Refactored request to skip db prefix
1 parent d3e7ae7 commit 0caea44

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

arangoasync/connection.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,11 @@ def compress_request(self, request: Request) -> bool:
163163
async def process_request(
164164
self,
165165
request: Request,
166-
skip_db_prefix: bool = False,
167166
) -> Response:
168167
"""Process request, potentially trying multiple hosts.
169168
170169
Args:
171170
request (Request): Request object.
172-
skip_db_prefix (bool): If `True`, do not prepend the database endpoint.
173171
174172
Returns:
175173
Response: Response object.
@@ -178,7 +176,7 @@ async def process_request(
178176
ConnectionAbortedError: If it can't connect to host(s) within limit.
179177
"""
180178

181-
if not skip_db_prefix:
179+
if request.prefix_needed:
182180
request.endpoint = f"{self._db_endpoint}{request.endpoint}"
183181
host_index = self._host_resolver.get_host_index()
184182
for tries in range(self._host_resolver.max_tries):
@@ -379,10 +377,11 @@ async def refresh_token(self) -> None:
379377
method=Method.POST,
380378
endpoint="/_open/auth",
381379
data=auth.encode("utf-8"),
380+
prefix_needed=False,
382381
)
383382

384383
try:
385-
resp = await self.process_request(request, skip_db_prefix=True)
384+
resp = await self.process_request(request)
386385
except ClientConnectionAbortedError as e:
387386
raise JWTRefreshError(str(e)) from e
388387
except ServerConnectionError as e:

arangoasync/database.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2022,7 +2022,9 @@ async def reload_jwt_secrets(self) -> Result[Json]:
20222022
References:
20232023
- `hot-reload-the-jwt-secrets-from-disk <https://docs.arangodb.com/stable/develop/http-api/authentication/#hot-reload-the-jwt-secrets-from-disk>`__
20242024
""" # noqa: 501
2025-
request = Request(method=Method.POST, endpoint="/_admin/server/jwt")
2025+
request = Request(
2026+
method=Method.POST, endpoint="/_admin/server/jwt", prefix_needed=False
2027+
)
20262028

20272029
def response_handler(resp: Response) -> Json:
20282030
if not resp.is_success:

arangoasync/request.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class Request:
3333
params (dict | None): URL parameters.
3434
data (bytes | None): Request payload.
3535
auth (Auth | None): Authentication.
36+
prefix_needed (bool): Whether the request needs a prefix (e.g., database name).
3637
3738
Attributes:
3839
method (Method): HTTP method.
@@ -41,6 +42,7 @@ class Request:
4142
params (dict | None): URL parameters.
4243
data (bytes | None): Request payload.
4344
auth (Auth | None): Authentication.
45+
prefix_needed (bool): Whether the request needs a prefix (e.g., database name).
4446
"""
4547

4648
__slots__ = (
@@ -50,6 +52,7 @@ class Request:
5052
"params",
5153
"data",
5254
"auth",
55+
"prefix_needed",
5356
)
5457

5558
def __init__(
@@ -60,13 +63,15 @@ def __init__(
6063
params: Optional[Params] = None,
6164
data: Optional[bytes | str] = None,
6265
auth: Optional[Auth] = None,
66+
prefix_needed: bool = True,
6367
) -> None:
6468
self.method: Method = method
6569
self.endpoint: str = endpoint
6670
self.headers: RequestHeaders = headers or dict()
6771
self.params: Params = params or dict()
6872
self.data: Optional[bytes | str] = data
6973
self.auth: Optional[Auth] = auth
74+
self.prefix_needed = prefix_needed
7075

7176
def normalized_headers(self) -> RequestHeaders:
7277
"""Normalize request headers.

0 commit comments

Comments
 (0)