Skip to content

Commit ccb13ed

Browse files
author
Liora Milbaum
committed
refactor: RequestsResponse
1 parent c7cf0d1 commit ccb13ed

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

gitlab/client.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -774,10 +774,10 @@ def http_request(
774774

775775
raise
776776

777-
self._check_redirects(result)
777+
self._check_redirects(result.response)
778778

779779
if 200 <= result.status_code < 300:
780-
return result
780+
return result.response
781781

782782
if (429 == result.status_code and obey_rate_limit) or (
783783
result.status_code in gitlab.const.RETRYABLE_TRANSIENT_ERROR_CODES

gitlab/http_backends/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Defines http backends for processing http requests
33
"""
44

5-
from .requests_backend import RequestsBackend
5+
from .requests_backend import RequestsBackend, RequestsResponse
66

77
DefaultBackend = RequestsBackend
8+
DefaultResponse = RequestsResponse

gitlab/http_backends/requests_backend.py

+27-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,30 @@
44
from requests_toolbelt.multipart.encoder import MultipartEncoder # type: ignore
55

66

7+
class RequestsResponse:
8+
def __init__(self, response: requests.Response) -> None:
9+
self._response: requests.Response = response
10+
11+
@property
12+
def response(self) -> requests.Response:
13+
return self._response
14+
15+
@property
16+
def status_code(self) -> int:
17+
return self._response.status_code
18+
19+
@property
20+
def headers(self) -> Any:
21+
return self._response.headers
22+
23+
@property
24+
def content(self) -> bytes:
25+
return self._response.content
26+
27+
def json(self) -> Any:
28+
return self._response.json()
29+
30+
731
class RequestsBackend:
832
def __init__(self, session: Optional[requests.Session] = None) -> None:
933
self._client: requests.Session = session or requests.Session()
@@ -23,7 +47,7 @@ def http_request(
2347
verify: Optional[Union[bool, str]] = True,
2448
stream: Optional[bool] = False,
2549
**kwargs: Any
26-
) -> requests.Response:
50+
) -> RequestsResponse:
2751
"""Make HTTP request
2852
2953
Args:
@@ -40,7 +64,7 @@ def http_request(
4064
Returns:
4165
A requests Response object.
4266
"""
43-
return self._client.request(
67+
response: requests.Response = self._client.request(
4468
method=method,
4569
url=url,
4670
params=params,
@@ -51,3 +75,4 @@ def http_request(
5175
json=json,
5276
**kwargs
5377
)
78+
return RequestsResponse(response=response)

0 commit comments

Comments
 (0)