Change HTTP Requests into HTTPS Ones
[holmes/rule-management.git] / rulemgt / src / main / java / org / onap / holmes / rulemgt / resources / RuleMgtResources.java
index 04578f7..d3c01ae 100644 (file)
@@ -20,7 +20,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;\r
 import io.swagger.annotations.ApiParam;\r
 import io.swagger.annotations.SwaggerDefinition;\r
-import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.Date;\r
+import java.util.List;\r
 import java.util.Locale;\r
 import javax.inject.Inject;\r
 import javax.servlet.http.HttpServletRequest;\r
@@ -29,6 +31,7 @@ import javax.ws.rs.GET;
 import javax.ws.rs.POST;\r
 import javax.ws.rs.PUT;\r
 import javax.ws.rs.Path;\r
+import javax.ws.rs.PathParam;\r
 import javax.ws.rs.Produces;\r
 import javax.ws.rs.QueryParam;\r
 import javax.ws.rs.core.Context;\r
@@ -36,13 +39,10 @@ import javax.ws.rs.core.MediaType;
 import lombok.extern.slf4j.Slf4j;\r
 import net.sf.json.JSONObject;\r
 import org.jvnet.hk2.annotations.Service;\r
-import org.onap.holmes.common.api.entity.ServiceRegisterEntity;\r
-import org.onap.holmes.common.config.MicroServiceConfig;\r
 import org.onap.holmes.common.exception.CorrelationException;\r
 import org.onap.holmes.common.utils.ExceptionUtil;\r
-import org.onap.holmes.common.utils.JacksonUtil;\r
+import org.onap.holmes.common.utils.GsonUtil;\r
 import org.onap.holmes.common.utils.LanguageUtil;\r
-import org.onap.holmes.common.utils.MSBRegisterUtil;\r
 import org.onap.holmes.common.utils.UserUtil;\r
 import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest;\r
 import org.onap.holmes.rulemgt.bean.request.RuleDeleteRequest;\r
@@ -50,13 +50,14 @@ import org.onap.holmes.rulemgt.bean.request.RuleQueryCondition;
 import org.onap.holmes.rulemgt.bean.request.RuleUpdateRequest;\r
 import org.onap.holmes.rulemgt.bean.response.RuleAddAndUpdateResponse;\r
 import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse;\r
+import org.onap.holmes.rulemgt.bean.response.RuleResult4API;\r
 import org.onap.holmes.rulemgt.constant.RuleMgtConstant;\r
 import org.onap.holmes.rulemgt.wrapper.RuleMgtWrapper;\r
 \r
 @Service\r
 @SwaggerDefinition\r
 @Path("/rule")\r
-@Api(tags = {"CorrelationRules"})\r
+@Api(tags = {"Holmes Rule Management"})\r
 @Produces(MediaType.APPLICATION_JSON)\r
 @Slf4j\r
 public class RuleMgtResources {\r
@@ -66,10 +67,14 @@ public class RuleMgtResources {
 \r
     @PUT\r
     @Produces(MediaType.APPLICATION_JSON)\r
-    @ApiOperation(value = "Save the alarm+ rule to the database, and deployed to the engine when the enable to open.", response = RuleAddAndUpdateResponse.class)\r
+    @ApiOperation(value = "Save a rule into the database; deploy it to the Drools engine if it is enabled.",\r
+            response = RuleAddAndUpdateResponse.class)\r
     @Timed\r
     public RuleAddAndUpdateResponse addCorrelationRule(@Context HttpServletRequest request,\r
-            @ApiParam(value = "alarm+ rule create request.<br>[rulename]:<font color=\"red\">required</font><br>[content]:<font color=\"red\">required</font><br>[enabled]:<font color=\"red\">required</font>", required = true) RuleCreateRequest ruleCreateRequest) {\r
+            @ApiParam(value = "The request entity of the HTTP call, which comprises \"ruleName\"(required), "\r
+                    + "\"loopControlName\"(required), \"content\"(required), \"enabled\"(required) "\r
+                    + "and \"description\"(optional)", required = true)\r
+                    RuleCreateRequest ruleCreateRequest) {\r
         Locale locale = LanguageUtil.getLocale(request);\r
         RuleAddAndUpdateResponse ruleChangeResponse;\r
         try {\r
@@ -85,10 +90,12 @@ public class RuleMgtResources {
 \r
     @POST\r
     @Produces(MediaType.APPLICATION_JSON)\r
-    @ApiOperation(value = "Update the alarm+ rule and deployed to the engine when the enable to open.", response = RuleAddAndUpdateResponse.class)\r
+    @ApiOperation(value = "Update an existing rule; deploy it to the Drools engine if it is enabled.", response = RuleAddAndUpdateResponse.class)\r
     @Timed\r
     public RuleAddAndUpdateResponse updateCorrelationRule(@Context HttpServletRequest request,\r
-            @ApiParam(value = "alarm+ rule update request.<br>[ruleid]:<font color=\"red\">required</font>", required = true) RuleUpdateRequest ruleUpdateRequest) {\r
+            @ApiParam(value = "The request entity of the HTTP call, which comprises \"ruleId\"(required), "\r
+                    + "\"content\"(required), \"enabled\"(required) and \"description\"(optional)", required = true)\r
+                    RuleUpdateRequest ruleUpdateRequest) {\r
         Locale locale = LanguageUtil.getLocale(request);\r
         RuleAddAndUpdateResponse ruleChangeResponse;\r
         try {\r
@@ -103,32 +110,34 @@ public class RuleMgtResources {
 \r
     @DELETE\r
     @Produces(MediaType.APPLICATION_JSON)\r
-    @ApiOperation(value = "Delete the alarm+ rule,and when the enable is open also removed from the engine.")\r
+    @ApiOperation(value = "Remove a rule from Holmes.")\r
     @Timed\r
+    @Path("/{ruleid}")\r
     public boolean deleteCorrelationRule(@Context HttpServletRequest request,\r
-            @ApiParam(value = "alarm+ rule delete request.<br>[ruleid]:<font color=\"red\">required</font>", required = true) RuleDeleteRequest ruleDeleteRequest) {\r
+            @PathParam("ruleid") String ruleId) {\r
         Locale locale = LanguageUtil.getLocale(request);\r
         try {\r
-            ruleMgtWrapper.deleteCorrelationRule(ruleDeleteRequest);\r
-            log.info("delete rule:" + ruleDeleteRequest.getRuleId() + " successful");\r
+            ruleMgtWrapper.deleteCorrelationRule(new RuleDeleteRequest(ruleId));\r
+            log.info("delete rule:" + ruleId + " successful");\r
             return true;\r
         } catch (CorrelationException e) {\r
-            log.error("delete rule:" + ruleDeleteRequest.getRuleId() + " failed", e);\r
+            log.error("delete rule:" + ruleId + " failed", e);\r
             throw ExceptionUtil.buildExceptionResponse(e.getMessage());\r
         }\r
     }\r
 \r
     @GET\r
     @Produces(MediaType.APPLICATION_JSON)\r
-    @ApiOperation(value = "According to the conditions query the alarm + rules", response = RuleQueryListResponse.class)\r
+    @ApiOperation(value = "Query rules using certain criteria.", response = RuleQueryListResponse.class)\r
     @Timed\r
     public RuleQueryListResponse getCorrelationRules(@Context HttpServletRequest request,\r
-            @ApiParam(value = "query condition:<br>" + " <b>[ruleid]</b>:Rule ID;<br>"\r
-                    + "<b>[rulename]</b>:Rule name;<br>" + "<b>[creator]</b>:creator of the rule;<br>"\r
-                    + "<b>[modifier]</b>:modifier of the rule;<br>"\r
-                    + "<b>[enabled]</b>: 0 is Enabled,1 is disabled;<br><font color=\"red\">for example:</font><br>{\"ruleid\":\"rule_1484727187317\"}", required = false) @QueryParam("queryrequest") String ruleQueryRequest) {\r
+            @ApiParam(value = "A JSON string used as a query parameter, which comprises \"ruleid\"(optional), "\r
+                    + "\"rulename\"(optional), \"creator\"(optional), "\r
+                    + "\"modifier\"(optional) and \"enabled\"(optional). E.g. {\"ruleid\":\"rule_1484727187317\"}",\r
+                    required = false) @QueryParam("queryrequest") String ruleQueryRequest) {\r
         Locale locale = LanguageUtil.getLocale(request);\r
         RuleQueryListResponse ruleQueryListResponse;\r
+\r
         RuleQueryCondition ruleQueryCondition = getRuleQueryCondition(ruleQueryRequest, request);\r
         try {\r
             ruleQueryListResponse = ruleMgtWrapper\r
@@ -144,18 +153,15 @@ public class RuleMgtResources {
     private RuleQueryCondition getRuleQueryCondition(String queryRequest,\r
             HttpServletRequest request) {\r
         Locale locale = LanguageUtil.getLocale(request);\r
-        try {\r
-            RuleQueryCondition ruleQueryCondition = JacksonUtil\r
-                    .jsonToBean(queryRequest, RuleQueryCondition.class);\r
-            if (queryRequest == null) {\r
-                ruleQueryCondition.setEnabled(RuleMgtConstant.STATUS_RULE_ALL);\r
-            } else if (queryRequest.indexOf("enabled") == -1) {\r
-                ruleQueryCondition.setEnabled(RuleMgtConstant.STATUS_RULE_ALL);\r
+        RuleQueryCondition ruleQueryCondition = GsonUtil.jsonToBean(queryRequest, RuleQueryCondition.class);\r
+        if (queryRequest == null) {\r
+            if(ruleQueryCondition==null){\r
+                ruleQueryCondition = new RuleQueryCondition();\r
             }\r
-            return ruleQueryCondition;\r
-        } catch (IOException e) {\r
-            log.warn("queryRequest convert to json failed", e);\r
-            throw ExceptionUtil.buildExceptionResponse("The request format is invalid!");\r
+            ruleQueryCondition.setEnabled(RuleMgtConstant.STATUS_RULE_ALL);\r
+        } else if (queryRequest.indexOf("enabled") == -1) {\r
+            ruleQueryCondition.setEnabled(RuleMgtConstant.STATUS_RULE_ALL);\r
         }\r
+        return ruleQueryCondition;\r
     }\r
 }\r