thingsboard-aplcache

Merge pull request #303 from dmytro-landiak/master rest

9/21/2017 2:44:35 PM

Details

diff --git a/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPlugin.java b/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPlugin.java
index a07c80d..53ab848 100644
--- a/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPlugin.java
+++ b/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPlugin.java
@@ -34,16 +34,23 @@ public class RestApiCallPlugin extends AbstractPlugin<RestApiCallPluginConfigura
     private static final String AUTHORIZATION_HEADER_NAME = "Authorization";
     private static final String AUTHORIZATION_HEADER_FORMAT = "Basic %s";
     private static final String CREDENTIALS_TEMPLATE = "%s:%s";
-    private static final String BASE_URL_TEMPLATE = "http://%s:%d%s";
+    private static final String BASE_URL_TEMPLATE = "%s%s:%d%s";
     private RestApiCallMsgHandler handler;
     private String baseUrl;
     private HttpHeaders headers = new HttpHeaders();
 
     @Override
     public void init(RestApiCallPluginConfiguration configuration) {
+        String host = configuration.getHost();
+        host = host.trim();
+        if (host.contains("://")) {
+            host = host.substring(host.lastIndexOf('/') + 1, host.length());
+        }
+
         this.baseUrl = String.format(
                 BASE_URL_TEMPLATE,
-                configuration.getHost(),
+                configuration.getProtocol(),
+                host,
                 configuration.getPort(),
                 configuration.getBasePath());
 
diff --git a/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPluginConfiguration.java b/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPluginConfiguration.java
index cfd23b8..c504972 100644
--- a/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPluginConfiguration.java
+++ b/extensions/extension-rest-api-call/src/main/java/org/thingsboard/server/extensions/rest/plugin/RestApiCallPluginConfiguration.java
@@ -22,6 +22,8 @@ import java.util.List;
 
 @Data
 public class RestApiCallPluginConfiguration {
+
+    private String protocol;
     private String host;
     private int port;
     private String basePath;
diff --git a/extensions/extension-rest-api-call/src/main/resources/RestApiCallPluginDescriptor.json b/extensions/extension-rest-api-call/src/main/resources/RestApiCallPluginDescriptor.json
index 06f8559..129380c 100644
--- a/extensions/extension-rest-api-call/src/main/resources/RestApiCallPluginDescriptor.json
+++ b/extensions/extension-rest-api-call/src/main/resources/RestApiCallPluginDescriptor.json
@@ -3,6 +3,10 @@
     "title": "REST API Call Plugin Configuration",
     "type": "object",
     "properties": {
+      "protocol": {
+        "title": "URI Scheme name",
+        "type": "string"
+      },
       "host": {
         "title": "Host",
         "type": "string"
@@ -51,6 +55,7 @@
       }
     },
     "required": [
+      "protocol",
       "host",
       "port",
       "basePath",
@@ -58,6 +63,21 @@
     ]
   },
   "form": [
+    {
+      "key": "protocol",
+      "type": "rc-select",
+      "multiple": false,
+      "items": [
+        {
+          "value": "http://",
+          "label": "HTTP"
+        },
+        {
+          "value": "https://",
+          "label": "HTTPS"
+        }
+      ]
+    },
     "host",
     "port",
     "basePath",