Skip to content
Prev Previous commit
Next Next commit
Make successUri mandatory in subscriber
It's mandatory in the standard.

Thx @ricardogsilva !
  • Loading branch information
totycro committed Mar 6, 2024
commit b86e7ed9db857ded593cffbe9dad626278bc50ea
22 changes: 16 additions & 6 deletions pygeoapi/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3491,12 +3491,22 @@ def execute_process(self, request: Union[APIRequest, Any],
data_dict = data.get('inputs', {})
LOGGER.debug(data_dict)

subscriber_dict = data.get('subscriber', {})
subscriber = Subscriber(
successUri=subscriber_dict.get('successUri'),
inProgressUri=subscriber_dict.get('inProgressUri'),
failedUri=subscriber_dict.get('failedUri'),
)
subscriber = None
subscriber_dict = data.get('subscriber')
if subscriber_dict:
try:
success_uri = subscriber_dict['successUri']
except KeyError:
return self.get_exception(
HTTPStatus.BAD_REQUEST, headers, request.format,
'MissingParameterValue', 'Missing successUri')
else:
subscriber = Subscriber(
# NOTE: successUri is mandatory according to the standard
successUri=success_uri,
inProgressUri=subscriber_dict.get('inProgressUri'),
failedUri=subscriber_dict.get('failedUri'),
)

try:
execution_mode = RequestedProcessExecutionMode(
Expand Down
2 changes: 1 addition & 1 deletion pygeoapi/process/manager/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ def _execute_handler_sync(self, p: BaseProcessor, job_id: str,

self.update_job(job_id, job_update_metadata)

if subscriber and subscriber.successUri:
if subscriber:
response = requests.post(subscriber.successUri, json=outputs)
LOGGER.debug(
f'Success notification response: {response.status_code}'
Expand Down
2 changes: 1 addition & 1 deletion pygeoapi/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ class Subscriber:

https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/subscriber.yaml # noqa
"""
successUri: Optional[str]
successUri: str
inProgressUri: Optional[str]
failedUri: Optional[str]

Expand Down