Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion src/vws/_vws_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
API.
"""

from http import HTTPStatus

from beartype import BeartypeConf, beartype
from vws_auth_tools import authorization_header, rfc_1123_date

from vws.exceptions.custom_exceptions import ServerError
from vws.exceptions.vws_exceptions import TooManyRequestsError
from vws.response import Response
from vws.transports import Transport

Expand Down Expand Up @@ -45,6 +49,12 @@ def target_api_request(

Returns:
The response to the request.

Raises:
~vws.exceptions.custom_exceptions.ServerError:
There is an error with Vuforia's servers.
~vws.exceptions.vws_exceptions.TooManyRequestsError:
Vuforia is rate limiting access.
"""
date_string = rfc_1123_date()

Expand All @@ -67,10 +77,23 @@ def target_api_request(

url = base_vws_url.rstrip("/") + request_path

return transport(
response = transport(
method=method,
url=url,
headers=headers,
data=data,
request_timeout=request_timeout_seconds,
)

if (
response.status_code == HTTPStatus.TOO_MANY_REQUESTS
): # pragma: no cover
# The Vuforia API returns a 429 response with no JSON body.
raise TooManyRequestsError(response=response)

if (
response.status_code >= HTTPStatus.INTERNAL_SERVER_ERROR
): # pragma: no cover
raise ServerError(response=response)

return response
13 changes: 0 additions & 13 deletions src/vws/vumark_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from beartype import BeartypeConf, beartype

from vws._vws_request import target_api_request
from vws.exceptions.custom_exceptions import ServerError
from vws.exceptions.vws_exceptions import (
AuthenticationFailureError,
BadRequestError,
Expand All @@ -17,7 +16,6 @@
InvalidTargetTypeError,
RequestTimeTooSkewedError,
TargetStatusNotSuccessError,
TooManyRequestsError,
UnknownTargetError,
)
from vws.transports import RequestsTransport, Transport
Expand Down Expand Up @@ -119,17 +117,6 @@ def generate_vumark_instance(
transport=self._transport,
)

if (
response.status_code == HTTPStatus.TOO_MANY_REQUESTS
): # pragma: no cover
# The Vuforia API returns a 429 response with no JSON body.
raise TooManyRequestsError(response=response)

if (
response.status_code >= HTTPStatus.INTERNAL_SERVER_ERROR
): # pragma: no cover
raise ServerError(response=response)

if response.status_code == HTTPStatus.OK:
return response.content

Expand Down
19 changes: 2 additions & 17 deletions src/vws/vws.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,14 @@
import json
import time
from datetime import date
from http import HTTPMethod, HTTPStatus
from http import HTTPMethod

from beartype import BeartypeConf, beartype

from vws._image_utils import ImageType as _ImageType
from vws._image_utils import get_image_data as _get_image_data
from vws._vws_request import target_api_request
from vws.exceptions.custom_exceptions import (
ServerError,
TargetProcessingTimeoutError,
)
from vws.exceptions.custom_exceptions import TargetProcessingTimeoutError
from vws.exceptions.vws_exceptions import (
AuthenticationFailureError,
BadImageError,
Expand All @@ -32,7 +29,6 @@
TargetQuotaReachedError,
TargetStatusNotSuccessError,
TargetStatusProcessingError,
TooManyRequestsError,
UnknownTargetError,
)
from vws.reports import (
Expand Down Expand Up @@ -129,17 +125,6 @@ def make_request(
transport=self._transport,
)

if (
response.status_code == HTTPStatus.TOO_MANY_REQUESTS
): # pragma: no cover
# The Vuforia API returns a 429 response with no JSON body.
raise TooManyRequestsError(response=response)

if (
response.status_code >= HTTPStatus.INTERNAL_SERVER_ERROR
): # pragma: no cover
raise ServerError(response=response)

result_code = json.loads(s=response.text)["result_code"]

if result_code == expected_result_code:
Expand Down
Loading