1313from urllib .parse import urljoin
1414
1515import requests
16- from requests import Response
1716from vws_auth_tools import authorization_header , rfc_1123_date
1817
1918from vws .exceptions .custom_exceptions import (
4847 TargetSummaryReport ,
4948)
5049
50+ from .exceptions .response import Response
51+
5152if TYPE_CHECKING :
5253 import io
5354
@@ -107,7 +108,7 @@ def _target_api_request(
107108
108109 url = urljoin (base = base_vws_url , url = request_path )
109110
110- return requests .request (
111+ requests_response = requests .request (
111112 method = method ,
112113 url = url ,
113114 headers = headers ,
@@ -116,6 +117,14 @@ def _target_api_request(
116117 timeout = None ,
117118 )
118119
120+ return Response (
121+ text = requests_response .text ,
122+ url = requests_response .url ,
123+ status_code = requests_response .status_code ,
124+ headers = dict (requests_response .headers ),
125+ request_body = requests_response .request .body ,
126+ )
127+
119128
120129class VWS :
121130 """
@@ -198,7 +207,7 @@ def _make_request(
198207 ): # pragma: no cover
199208 raise ServerError (response = response )
200209
201- result_code = response . json ( )["result_code" ]
210+ result_code = json . loads ( s = response . text )["result_code" ]
202211
203212 if result_code == expected_result_code :
204213 return response
@@ -303,7 +312,7 @@ def add_target(
303312 expected_result_code = "TargetCreated" ,
304313 )
305314
306- return str (response . json ( )["target_id" ])
315+ return str (json . loads ( response . text )["target_id" ])
307316
308317 def get_target_record (self , target_id : str ) -> TargetStatusAndRecord :
309318 """
@@ -340,7 +349,7 @@ def get_target_record(self, target_id: str) -> TargetStatusAndRecord:
340349 expected_result_code = "Success" ,
341350 )
342351
343- result_data = response . json ( )
352+ result_data = json . loads ( s = response . text )
344353 status = TargetStatuses (result_data ["status" ])
345354 target_record_dict = dict (result_data ["target_record" ])
346355 target_record = TargetRecord (
@@ -436,7 +445,7 @@ def list_targets(self) -> list[str]:
436445 expected_result_code = "Success" ,
437446 )
438447
439- return list (response . json ( )["results" ])
448+ return list (json . loads ( response . text )["results" ])
440449
441450 def get_target_summary_report (self , target_id : str ) -> TargetSummaryReport :
442451 """
@@ -473,7 +482,7 @@ def get_target_summary_report(self, target_id: str) -> TargetSummaryReport:
473482 expected_result_code = "Success" ,
474483 )
475484
476- result_data = dict (response . json ( ))
485+ result_data = dict (json . loads ( response . text ))
477486 return TargetSummaryReport (
478487 status = TargetStatuses (result_data ["status" ]),
479488 database_name = result_data ["database_name" ],
@@ -516,7 +525,7 @@ def get_database_summary_report(self) -> DatabaseSummaryReport:
516525 expected_result_code = "Success" ,
517526 )
518527
519- response_data = dict (response . json ( ))
528+ response_data = dict (json . loads ( response . text ))
520529 return DatabaseSummaryReport (
521530 active_images = response_data ["active_images" ],
522531 current_month_recos = response_data ["current_month_recos" ],
@@ -603,7 +612,7 @@ def get_duplicate_targets(self, target_id: str) -> list[str]:
603612 expected_result_code = "Success" ,
604613 )
605614
606- return list (response . json ( )["similar_targets" ])
615+ return list (json . loads ( s = response . text )["similar_targets" ])
607616
608617 def update_target (
609618 self ,
0 commit comments