"""Helping functions for ows-request.""" import sentry_sdk from owsrequest import request SENTRY_MESSAGE_FORMAT = "{service} error for resource {resource}: {error}" def get(*args, **kwargs): """Make a request using ows-request, logs failures to Sentry.""" report_failures_to_sentry = kwargs.pop("report_failures_to_sentry", True) response = request.get(*args, **kwargs) log_response_if_error(*args, response, report_failures_to_sentry) return response def log_response_if_error(service, resource, response, report_failures_to_sentry=True): """Log a response to Sentry for a service and resource if it failed.""" if response.status_code != 200 and report_failures_to_sentry: sentry_sdk.capture_message( SENTRY_MESSAGE_FORMAT.format( service=service, resource=resource, error=response.text ) )