Skip to content
Snippets Groups Projects
Commit 81cde426 authored by Nathan Hertz's avatar Nathan Hertz
Browse files

Added new view: `submit_capability_request`

parent eb2126a5
No related branches found
No related tags found
1 merge request!96WS-31: Submit capability request view
......@@ -65,7 +65,7 @@ def create_capability_request(request: Request) -> Response:
return HTTPPreconditionFailed(detail=does_not_exist_msg)
else:
# TODO: Implement future products
new_capability_request = request.capabilities.create_request(
new_capability_request = request.capability_service.create_request(
capability_name, parameters=params["parameters"], products=None
)
return Response(json_body=new_capability_request.__json__())
......@@ -77,6 +77,33 @@ def edit_capability_request(request: Request) -> Response:
Pyramid view that accepts a request to edit a capability request
URL: capability/{capability_name}/request/{request_id}/edit
:param request: POST request
:return Bad Request response, since it's not yet implemented
TODO: Implement once CapabilityVersions are supported
"""
return HTTPBadRequest()
return HTTPBadRequest(detail="Editing capability requests is not yet implemented.")
@view_config(route_name="submit_capability_request", renderer="json")
def submit_capability_request(request: Request) -> Response:
"""
Pyramid view that accepts a request to submit a capability request
URL: capability/{capability_name}/request/{request_id}/submit
:param request: POST request, expecting JSON parameters ["parameters", "versions"]
:return: Response with
or 412 response (HTTPPreconditionFailed) if capability request with given ID does not exist and thus cannot be
submitted
"""
capability_name = request.matchdict["capability_name"]
request_id = request.matchdict["request_id"]
capability_request = request.capability_info.lookup_capability_request(request_id)
if not capability_request:
# Capability request not found
does_not_exist_msg = f"Capability request for {capability_name} with ID {request_id} does not exist. Cannot submit request."
return HTTPPreconditionFailed(detail=does_not_exist_msg)
else:
execution = request.capability_service.run_capability(capability_request)
return Response(body=execution.__json__())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment