From ff9ea1b6fc231a7fdf9fef815d069cf83b68f946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Garn=C3=A6s?= Date: Sun, 29 Jan 2023 18:18:32 +0100 Subject: [PATCH] Edr Providers can raise Request Entity Too Large HTTP status (#1119) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Edr Providers can raise Request Entity Too Large HTTP status * Rename and move entity too large exception to provider base module * Get request too large exception message from base exception message * Rename request to large exception --------- Co-authored-by: Peter Garnæs --- pygeoapi/api.py | 7 ++++++- pygeoapi/provider/base.py | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pygeoapi/api.py b/pygeoapi/api.py index b745989..6683b5a 100644 --- a/pygeoapi/api.py +++ b/pygeoapi/api.py @@ -68,7 +68,8 @@ from pygeoapi.plugin import load_plugin, PLUGINS from pygeoapi.provider.base import ( ProviderGenericError, ProviderConnectionError, ProviderNotFoundError, ProviderInvalidDataError, ProviderInvalidQueryError, ProviderNoDataError, - ProviderQueryError, ProviderItemNotFoundError, ProviderTypeError) + ProviderQueryError, ProviderItemNotFoundError, ProviderTypeError, + ProviderRequestEntityTooLargeError) from pygeoapi.provider.tile import (ProviderTileNotFoundError, ProviderTileQueryError, @@ -3647,6 +3648,10 @@ class API: return self.get_exception( HTTPStatus.INTERNAL_SERVER_ERROR, headers, request.format, 'NoApplicableCode', msg) + except ProviderRequestEntityTooLargeError as err: + return self.get_exception( + HTTPStatus.REQUEST_ENTITY_TOO_LARGE, headers, request.format, + 'NoApplicableCode', str(err)) if request.format == F_HTML: # render content = render_j2_template(self.config, diff --git a/pygeoapi/provider/base.py b/pygeoapi/provider/base.py index 82204af..41f2c0a 100644 --- a/pygeoapi/provider/base.py +++ b/pygeoapi/provider/base.py @@ -313,3 +313,8 @@ class ProviderVersionError(ProviderGenericError): class ProviderInvalidDataError(ProviderGenericError): """provider invalid data error""" pass + + +class ProviderRequestEntityTooLargeError(ProviderGenericError): + """provider request entity too large error""" + pass