summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java
new file mode 100644
index 00000000..dd18a1a2
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorDashboardController.java
@@ -0,0 +1,119 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+package org.onap.portalsdk.analytics.system.fusion.web;
+
+import java.util.HashMap;
+import java.util.TreeMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+
+import org.onap.portalsdk.analytics.model.ReportHandler;
+import org.onap.portalsdk.analytics.model.ReportLoader;
+import org.onap.portalsdk.analytics.model.base.ReportWrapper;
+import org.onap.portalsdk.analytics.model.runtime.DashboardRunJSON;
+import org.onap.portalsdk.analytics.system.Globals;
+import org.onap.portalsdk.analytics.xmlobj.CustomReportType;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * For dashboard reports.
+ */
+@RestController
+@RequestMapping("/")
+public class RaptorDashboardController extends RestrictedBaseController {
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RaptorDashboardController.class);
+
+ @RequestMapping(value = { "raptor/dashboard/run/{parameter}" }, method = RequestMethod.GET, produces = "application/json")
+ @ResponseBody
+ public DashboardRunJSON dashboardRun(@PathVariable("parameter") String reportId, HttpServletRequest request) {
+ ServletContext servletContext = request.getSession().getServletContext();
+ if (!Globals.isSystemInitialized()) {
+ Globals.initializeSystem(servletContext);
+ }
+ DashboardRunJSON dashboardRunJSON = new DashboardRunJSON();
+ dashboardRunJSON.setReportId(reportId);
+ try {
+ ReportHandler rh1 = new ReportHandler();
+ if (reportId != null) {
+ String reportXML = ReportLoader.loadCustomReportXML(reportId);
+ CustomReportType crType = ReportWrapper.unmarshalCR(reportXML);
+ dashboardRunJSON.setDashboardLayoutJSON(crType.getDashboardLayoutJSON());
+
+ String strHTML = crType.getDashboardLayoutHTML();
+ dashboardRunJSON.setReportsFromDashBoardHTML(getListOfReportsFromDashBoardHTML(strHTML));
+
+ reportXML = ReportLoader.loadCustomReportXML(((String)dashboardRunJSON.getReportsFromDashBoardHTML().get("1")).substring(1));
+ crType = ReportWrapper.unmarshalCR(reportXML);
+ dashboardRunJSON.setFormFieldList(crType.getFormFieldList());
+ dashboardRunJSON.setFormFieldGroupsJSON(crType.getFormFieldGroupsJSON());
+ }
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getManifest failed", ex);
+ dashboardRunJSON.setErrorMessage(ex.toString());
+ }
+ return dashboardRunJSON;
+ }
+
+ private TreeMap getListOfReportsFromDashBoardHTML(String htmlString) {
+ String sourcestring = htmlString;
+ Pattern re = Pattern.compile("\\[(.*?)\\]");
+ Matcher m = re.matcher(sourcestring);
+ HashMap hashReports = new HashMap();
+ int mIdx = 0;
+ while (m.find()) {
+ for (int groupIdx = 0; groupIdx < m.groupCount(); groupIdx++) {
+ String str = m.group(groupIdx);
+ hashReports.put(new String(Integer.toString(mIdx + 1)),
+ (str.substring(1).toLowerCase().startsWith("chart") ? "c" : "d")
+ + str.substring(str.indexOf("#") + 1, str.length() - 1));
+ }
+ mIdx++;
+ }
+ return new TreeMap(hashReports);
+ }
+} \ No newline at end of file