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
+ 2
2
Compare changes
  • Side-by-side
  • Inline
@@ -41,7 +41,7 @@ def create_capability_request(request: Request) -> Response:
Pyramid view that accepts a request to create a capability request
URL: capability/{capability_name}/request/create
:param request: POST request, expecting JSON parameters ["parameters", "versions"]
:param request: POST request, expecting JSON parameter "parameters"
:return: Response with JSON-formatted info of newly created capability request
or 400 response (HTTPBadRequest) if expected parameters not given
or 412 response (HTTPPreconditionFailed) if capability with given name does not exist and thus cannot be
@@ -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
: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(json_body=execution.__json__())
Loading