2 * Copyright (c) 2017-2018 ZTE Corporation.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the Apache License, Version 2.0
5 * and the Eclipse Public License v1.0 which both accompany this distribution,
6 * and are available at http://www.eclipse.org/legal/epl-v10.html
7 * and http://www.apache.org/licenses/LICENSE-2.0
10 * ZTE - initial API and implementation and/or initial documentation
13 package org.onap.sdc.workflowdesigner.resources;
15 import java.io.IOException;
17 import javax.ws.rs.Consumes;
18 import javax.ws.rs.GET;
19 import javax.ws.rs.Path;
20 import javax.ws.rs.Produces;
21 import javax.ws.rs.QueryParam;
22 import javax.ws.rs.core.MediaType;
23 import javax.ws.rs.core.Response;
25 import org.eclipse.jetty.http.HttpStatus;
26 import org.onap.sdc.workflowdesigner.resources.entity.ExtActivityDisplayInfo;
27 import org.onap.sdc.workflowdesigner.resources.entity.ExtendActivity;
28 import org.onap.sdc.workflowdesigner.utils.FileCommonUtils;
29 import org.onap.sdc.workflowdesigner.utils.JsonUtils;
30 import org.onap.sdc.workflowdesigner.utils.RestUtils;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
34 import com.codahale.metrics.annotation.Timed;
36 import io.swagger.annotations.Api;
37 import io.swagger.annotations.ApiOperation;
38 import io.swagger.annotations.ApiParam;
39 import io.swagger.annotations.ApiResponse;
40 import io.swagger.annotations.ApiResponses;
43 * Extend Activity Resource.
46 @Path("/ext-activities")
47 @Api(tags = {"Workflow Modeler"})
48 public class ExtendActivityResource {
49 private static final Logger LOGGER = LoggerFactory.getLogger(ExtendActivityResource.class);
52 private static final String EXT_ACTIVITIES_DISPLAY_INFO_FILE_NAME = "ext-activities-display-info.json";
54 private static final String EXT_ACTIVITIES_FILE_NAME = "ext-activities.json";
63 @Consumes(MediaType.APPLICATION_JSON)
64 @Produces(MediaType.APPLICATION_JSON)
65 @ApiOperation(value = "Get Extend Activities.", response = ExtendActivity.class, responseContainer = "List")
66 @ApiResponses(value = {
67 @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found",
68 response = String.class),
69 @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415,
70 message = "Unprocessable MicroServiceInfo Entity ", response = String.class),
71 @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "server internal error",
72 response = String.class)})
74 public Response getExtActivities(@ApiParam(value = "sence") @QueryParam("sence") String sence) {
77 ExtendActivity[] extActivities = retriveExtActivites(sence);
78 return Response.status(Response.Status.OK).entity(extActivities).build();
79 } catch (IOException e) {
80 LOGGER.error("Get ExtActivities failed.", e);
81 throw RestUtils.newInternalServerErrorException(e);
91 protected ExtendActivity[] retriveExtActivites(String sence) throws IOException {
92 String json = FileCommonUtils.readString(EXT_ACTIVITIES_FILE_NAME);
93 return JsonUtils.fromJson(json, ExtendActivity[].class);
99 @Consumes(MediaType.APPLICATION_JSON)
100 @Produces(MediaType.APPLICATION_JSON)
101 @ApiOperation(value = "Get Extend Activities DisplayInfo", response = ExtActivityDisplayInfo.class)
102 @ApiResponses(value = {
103 @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found",
104 response = String.class),
105 @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415,
106 message = "Unprocessable MicroServiceInfo Entity ", response = String.class),
107 @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "server internal error",
108 response = String.class)})
110 public Response getDisplayInfo(@ApiParam(value = "sence") @QueryParam("sence") String sence) {
112 ExtActivityDisplayInfo displayInfo = retriveDisplayInfo(sence);
113 return Response.status(Response.Status.OK).entity(displayInfo).build();
114 } catch (IOException e) {
115 LOGGER.error("Get Extend Activities DisplayInfo failed.", e);
116 throw RestUtils.newInternalServerErrorException(e);
123 * @throws IOException
125 private ExtActivityDisplayInfo retriveDisplayInfo(String sence) throws IOException {
126 String json = FileCommonUtils.readString(EXT_ACTIVITIES_DISPLAY_INFO_FILE_NAME);
127 return JsonUtils.fromJson(json, ExtActivityDisplayInfo.class);