Skip to content
Snippets Groups Projects

WS-31: Submit capability request view

Merged Nathan Hertz requested to merge WS-31-submit-capability-request-view into main
All threads resolved!
1 file
+ 29
2
Compare changes
  • Side-by-side
  • Inline
@@ -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__())
Loading