diff options
Diffstat (limited to 'wfenginemgrservice/src/main/java/org/onap/workflow/resources/WorkflowResource.java')
-rw-r--r-- | wfenginemgrservice/src/main/java/org/onap/workflow/resources/WorkflowResource.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/resources/WorkflowResource.java b/wfenginemgrservice/src/main/java/org/onap/workflow/resources/WorkflowResource.java new file mode 100644 index 0000000..5450d75 --- /dev/null +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/resources/WorkflowResource.java @@ -0,0 +1,101 @@ +/** + * Copyright 2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.workflow.resources; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; + +import java.io.InputStream; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.eclipse.jetty.http.HttpStatus; +import org.glassfish.jersey.media.multipart.FormDataContentDisposition; +import org.glassfish.jersey.media.multipart.FormDataParam; +import org.jvnet.hk2.annotations.Service; +import org.onap.workflow.common.RestResponse; +import org.onap.workflow.entity.DeployBpmnFileResponse; +import org.onap.workflow.entity.StartProcessRequest; +import org.onap.workflow.wrapper.WorkflowInstanceWrapper; + +@Path("/") +@Api(tags = {"Workflow Resource"}) +@Produces(MediaType.APPLICATION_JSON) +@Service +public class WorkflowResource { + @POST + @Path("/package") + @Consumes({"multipart/form-data"}) + @Produces({"application/json"}) + @ApiOperation(value = "deploy bpmn file") + @ApiResponses(value = { + @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found", + response = DeployBpmnFileResponse.class), + @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415, + message = "Unprocessable MicroServiceInfo Entity ", response = String.class), + @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "error")}) + public Response deployBpmnFile( + @ApiParam(value = "file inputstream", + required = true) @FormDataParam("file") InputStream fileInputStream, + @ApiParam(value = "file detail", + required = false) @FormDataParam("file") FormDataContentDisposition fileDetail) { + return WorkflowInstanceWrapper.getInstance().deployBpmnFile(fileDetail.getFileName(), + fileInputStream, null); + } + + @Path("/package/{deployId}") + @DELETE + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation(value = "undeploy bpmn file") + @ApiResponses(value = { + @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found", + response = DeployBpmnFileResponse.class), + @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415, + message = "Unprocessable MicroServiceInfo Entity ", response = String.class), + @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "error")}) + public RestResponse undeployBpmnFile( + @ApiParam("deployId") @PathParam("deployId") String deployId) { + return WorkflowInstanceWrapper.getInstance().undeployBpmnFile(deployId); + } + + @Path("process/instance") + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation(value = "package process") + @ApiResponses(value = { + @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found", + response = DeployBpmnFileResponse.class), + @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415, + message = "Unprocessable MicroServiceInfo Entity ", response = String.class), + @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "error")}) + public Response startProcess( + @ApiParam(value = "request", required = false) StartProcessRequest request) { + return WorkflowInstanceWrapper.getInstance().startProcess(request); + } +} |