summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration')
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookController.java53
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookTestController.java55
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookController.java100
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java113
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java94
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java41
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java31
-rw-r--r--ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java146
8 files changed, 633 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookController.java
new file mode 100644
index 00000000..8b8ad5c9
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookController.java
@@ -0,0 +1,53 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.openecomp.portalsdk.core.service.UserProfileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+@Controller
+@RequestMapping("/")
+public class NotebookController extends RestrictedBaseController{
+ @Autowired
+ UserProfileService service;
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(NotebookController.class);
+
+ @RequestMapping(value = {"/notebook" }, method = RequestMethod.GET)
+ public ModelAndView noteBook(HttpServletRequest request) {
+
+ try {
+
+ } catch (Exception e) {
+
+
+ }
+ return new ModelAndView(getViewName());
+ }
+
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookTestController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookTestController.java
new file mode 100644
index 00000000..ac56b6c6
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/NotebookTestController.java
@@ -0,0 +1,55 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.openecomp.portalsdk.core.service.UserProfileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+@Controller
+@RequestMapping("/")
+public class NotebookTestController extends RestrictedBaseController{
+ @Autowired
+ UserProfileService service;
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(NotebookTestController.class);
+
+ @RequestMapping(value = {"/nbooktest" }, method = RequestMethod.GET)
+ public ModelAndView noteBook(HttpServletRequest request) {
+
+ try {
+
+ } catch (Exception e) {
+
+
+ }
+ return new ModelAndView(getViewName());
+ }
+
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookController.java
new file mode 100644
index 00000000..00d97268
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookController.java
@@ -0,0 +1,100 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.controller;
+
+import java.util.HashMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.hibernate.validator.internal.util.privilegedactions.GetMethodFromPropertyName;
+import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
+import org.openecomp.portalsdk.core.controller.RestrictedRESTfulBaseController;
+import org.openecomp.portalsdk.core.domain.User;
+import org.openecomp.portalsdk.core.restful.domain.EcompUser;
+import org.openecomp.portalsdk.core.util.SystemProperties;
+import org.openecomp.portalsdk.core.web.support.JsonMessage;
+import org.openecomp.portalsdk.core.web.support.UserUtils;
+import org.openecomp.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException;
+import org.openecomp.portalsdk.rnotebookintegration.service.RNoteBookIntegrationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Controller
+@RequestMapping("/rNotebook/")
+
+public class RNoteBookController extends RestrictedRESTfulBaseController {
+
+ @Autowired
+ private RNoteBookIntegrationService rNoteBookIntegrationService;
+
+
+
+ public RNoteBookIntegrationService getrNoteBookIntegrationService() {
+ return rNoteBookIntegrationService;
+ }
+
+
+
+ public void setrNoteBookIntegrationService(
+ RNoteBookIntegrationService rNoteBookIntegrationService) {
+ this.rNoteBookIntegrationService = rNoteBookIntegrationService;
+ }
+
+
+
+ @RequestMapping(value = { "authCr" }, method = RequestMethod.GET, produces = "application/json")
+ public @ResponseBody ResponseEntity<String> getRNotebookCredentials (String token) throws Exception {
+ //ObjectMapper mapper = new ObjectMapper();
+ //mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ //JsonNode root = mapper.readTree(request.getReader());
+ //String token = root.get("authenticationToken").textValue();
+
+ String returnJSON = "";
+ try{
+ returnJSON = this.getrNoteBookIntegrationService().getRNotebookCredentials(token);
+ } catch(RNotebookIntegrationException re){
+ if (re.getErrorCode().equals(RNotebookIntegrationException.ERROR_CODE_TOKEN_EXPIRED)){
+ return new ResponseEntity<String>(JsonMessage.buildJsonResponse(false, re.getMessage()), HttpStatus.BAD_REQUEST);
+ }
+ else {
+ return new ResponseEntity<String>(JsonMessage.buildJsonResponse(false, re.getMessage()), HttpStatus.BAD_REQUEST);
+ }
+ }
+ catch (Exception e){
+ return new ResponseEntity<String>(JsonMessage.buildJsonResponse(false, e.getMessage()), HttpStatus.BAD_REQUEST);
+ }
+
+ return new ResponseEntity<String>(returnJSON, HttpStatus.OK);
+
+ }
+
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java
new file mode 100644
index 00000000..3b0fcc49
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java
@@ -0,0 +1,113 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.controller;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.json.JSONObject;
+import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
+import org.openecomp.portalsdk.core.domain.User;
+import org.openecomp.portalsdk.core.restful.domain.EcompUser;
+import org.openecomp.portalsdk.core.util.SystemProperties;
+import org.openecomp.portalsdk.core.web.support.UserUtils;
+import org.openecomp.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException;
+import org.openecomp.portalsdk.rnotebookintegration.service.RNoteBookIntegrationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller
+@RequestMapping("/rNotebookFE/")
+public class RNoteBookFEController extends RestrictedBaseController {
+ @Autowired
+ private RNoteBookIntegrationService rNoteBookIntegrationService;
+
+
+
+ public RNoteBookIntegrationService getrNoteBookIntegrationService() {
+ return rNoteBookIntegrationService;
+ }
+
+
+
+ public void setrNoteBookIntegrationService(
+ RNoteBookIntegrationService rNoteBookIntegrationService) {
+ this.rNoteBookIntegrationService = rNoteBookIntegrationService;
+ }
+
+ @RequestMapping(value = { "authCr" }, method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody ResponseEntity<String> saveRNotebookCredentials (@RequestBody String notebookId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ //ObjectMapper mapper = new ObjectMapper();
+ //mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ //JsonNode root = mapper.readTree(request.getReader());
+ //String token = root.get("authenticationToken").textValue();
+ System.out.println("Notebook id "+notebookId);
+ System.out.println("Query parameters "+request.getParameter("qparams"));
+ String retUrl = "";
+ try{
+
+ User user = UserUtils.getUserSession(request);
+ user = (User) this.getDataAccessService().getDomainObject(User.class, user.getId(), null);
+
+ EcompUser ecUser =UserUtils.convertToEcompUser(user);
+
+ HashMap<String, String> map = new HashMap<String, String>();
+ JSONObject jObject = new JSONObject(request.getParameter("qparams"));
+ Iterator<?> keys = jObject.keys();
+
+ while( keys.hasNext() ){
+ String key = (String)keys.next();
+ String value = jObject.getString(key);
+ map.put(key, value);
+
+ }
+
+ System.out.println("json : "+jObject);
+ System.out.println("map : "+map);
+
+ // String token = this.getrNoteBookIntegrationService().saveRNotebookCredentials(notebookId, ecUser, new HashMap<String, String>());
+ String token = this.getrNoteBookIntegrationService().saveRNotebookCredentials(notebookId, ecUser, map);
+
+ String guard = SystemProperties.getProperty("guard_notebook_url");
+
+ retUrl = guard + "id=" + token;
+
+
+ } catch (RNotebookIntegrationException re){
+ return new ResponseEntity<String>(re.getMessage(), HttpStatus.BAD_REQUEST);
+ } catch (Exception e){
+ return new ResponseEntity<String>(e.getMessage(), HttpStatus.BAD_REQUEST);
+ }
+
+ return new ResponseEntity<String>(retUrl, HttpStatus.OK);
+
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java
new file mode 100644
index 00000000..d2928495
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java
@@ -0,0 +1,94 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.domain;
+
+import java.util.Date;
+import java.util.Map;
+
+import org.openecomp.portalsdk.core.domain.User;
+import org.openecomp.portalsdk.core.domain.support.DomainVo;
+import org.openecomp.portalsdk.core.restful.domain.EcompUser;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public class RNoteBookCredentials extends DomainVo {
+ private EcompUser userInfo;
+ private String token;
+ private Date createdDate;
+ private String notebookID;
+ private Map<String, String> parameters;
+ private Date tokenReadDate;
+ @JsonIgnore
+ private String userString;
+ @JsonIgnore
+ private String parametersString;
+
+ public String getToken() {
+ return token;
+ }
+ public void setToken(String token) {
+ this.token = token;
+ }
+ public Date getCreatedDate() {
+ return createdDate;
+ }
+ public void setCreatedDate(Date createdDate) {
+ this.createdDate = createdDate;
+ }
+ public String getNotebookID() {
+ return notebookID;
+ }
+ public EcompUser getUserInfo() {
+ return userInfo;
+ }
+ public void setUserInfo(EcompUser userInfo) {
+ this.userInfo = userInfo;
+ }
+ public void setNotebookID(String notebookID) {
+ this.notebookID = notebookID;
+ }
+ public String getUserString() {
+ return userString;
+ }
+ public void setUserString(String userString) {
+ this.userString = userString;
+ }
+ public Map<String, String> getParameters() {
+ return parameters;
+ }
+ public void setParameters(Map<String, String> parameters) {
+ this.parameters = parameters;
+ }
+ public String getParametersString() {
+ return parametersString;
+ }
+ public void setParametersString(String parametersString) {
+ this.parametersString = parametersString;
+ }
+ public Date getTokenReadDate() {
+ return tokenReadDate;
+ }
+ public void setTokenReadDate(Date tokenReadDate) {
+ this.tokenReadDate = tokenReadDate;
+ }
+
+
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java
new file mode 100644
index 00000000..b2742641
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java
@@ -0,0 +1,41 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.exception;
+
+public class RNotebookIntegrationException extends Exception {
+ public static final String ERROR_CODE_TOKEN_EXPIRED = "ERROR_CODE_TOKEN_EXPIRED";
+ public static final String ERROR_CODE_TOKEN_INVALID = "ERROR_CODE_TOKEN_INVALID";
+
+ String errorCode;
+
+ public RNotebookIntegrationException(String errorCodeStr){
+ super(errorCodeStr);
+ this.errorCode = errorCodeStr;
+ }
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java
new file mode 100644
index 00000000..2b1e3c9e
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java
@@ -0,0 +1,31 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.service;
+
+import java.util.Map;
+
+import org.openecomp.portalsdk.core.restful.domain.EcompUser;
+import org.openecomp.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException;
+
+public interface RNoteBookIntegrationService {
+ public String getRNotebookCredentials(String token) throws RNotebookIntegrationException, Exception;
+
+ public String saveRNotebookCredentials(String notebookId, EcompUser user, Map<String, String> params) throws RNotebookIntegrationException, Exception;
+}
diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java
new file mode 100644
index 00000000..fe21cd13
--- /dev/null
+++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/openecomp/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java
@@ -0,0 +1,146 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.openecomp.portalsdk.rnotebookintegration.service;
+
+import java.security.SecureRandom;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.openecomp.portalsdk.core.restful.domain.EcompUser;
+import org.openecomp.portalsdk.core.service.DataAccessService;
+import org.openecomp.portalsdk.core.web.support.UserUtils;
+import org.openecomp.portalsdk.rnotebookintegration.domain.RNoteBookCredentials;
+import org.openecomp.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Service("RNoteBookIntegrationService")
+@Transactional
+public class RNoteBookIntegrationServiceImpl implements RNoteBookIntegrationService {
+
+ private final long tokenTTL = 50000L;
+
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RNoteBookIntegrationServiceImpl.class);
+
+
+ @Autowired
+ private DataAccessService dataAccessService;
+
+ public DataAccessService getDataAccessService() {
+ return dataAccessService;
+ }
+
+ public void setDataAccessService(DataAccessService dataAccessService) {
+ this.dataAccessService = dataAccessService;
+ }
+
+ @Override
+ public String getRNotebookCredentials(String token) throws RNotebookIntegrationException, Exception {
+ String retString = "";
+
+ try{
+ RNoteBookCredentials notebookCredentials = (RNoteBookCredentials) this.getDataAccessService().getDomainObject(RNoteBookCredentials.class, token, new HashMap<String, String>());
+ if (notebookCredentials.getToken() == null || notebookCredentials.getToken().equals("")){
+ throw new RNotebookIntegrationException(RNotebookIntegrationException.ERROR_CODE_TOKEN_INVALID);
+ }
+ Date currDate = new Date();
+ if ((currDate.getTime() - notebookCredentials.getCreatedDate().getTime() > tokenTTL) || (notebookCredentials.getTokenReadDate() != null)){
+ throw new RNotebookIntegrationException(RNotebookIntegrationException.ERROR_CODE_TOKEN_EXPIRED);
+ }
+ ObjectMapper mapper = new ObjectMapper();
+
+ try{
+ EcompUser userInfo = mapper.readValue(notebookCredentials.getUserString(), EcompUser.class);
+ notebookCredentials.setUserInfo(userInfo);
+ } catch(JsonMappingException me){
+ logger.error("error converting string to user. from JSON" + me.getMessage());
+ } catch(JsonParseException pe){
+ logger.error("error converting string to user. from JSON" + pe.getMessage());
+ }
+
+ try{
+ Map<String, String> params = mapper.readValue(notebookCredentials.getParametersString(), HashMap.class);
+ notebookCredentials.setParameters(params);
+ } catch(JsonMappingException me){
+ logger.error("error converting string to parameters. from JSON" + me.getMessage());
+ } catch(JsonParseException pe){
+ logger.error("error converting string to parameters. from JSON" + pe.getMessage());
+ }
+
+ //expiring the token
+ try{
+ notebookCredentials.setTokenReadDate(new Date());
+ this.getDataAccessService().saveDomainObject(notebookCredentials, null);
+ } catch(Exception e){
+ logger.info("Error while expiring the token");
+ logger.error(e.getMessage());
+ throw new Exception();
+ }
+ //notebookCredentials.setUserString(null);
+ retString = mapper.writeValueAsString(notebookCredentials);
+ } catch(RNotebookIntegrationException re){
+ logger.error(re.getMessage());
+ throw re;
+ } catch(Exception e){
+ logger.info("Error while parsing the rcloud notebook credentials");
+ logger.error(e.getMessage());
+ throw new Exception();
+ }
+
+ return retString;
+ }
+
+ @Override
+ public String saveRNotebookCredentials(String notebookId, EcompUser user, Map<String, String> params) throws RNotebookIntegrationException, Exception {
+
+ String token = "";
+ try{
+ token = UUID.randomUUID().toString();
+
+ ObjectMapper mapper = new ObjectMapper();
+ ;
+ RNoteBookCredentials rc = new RNoteBookCredentials();
+ rc.setToken(token);
+ rc.setCreatedDate(new Date());
+ rc.setNotebookID(notebookId);
+ rc.setParametersString(mapper.writeValueAsString(params));
+ rc.setUserString(mapper.writeValueAsString(user));
+
+ this.getDataAccessService().saveDomainObject(rc, null);
+
+ } catch(Exception e){
+ logger.info("Error while parsing the rcloud notebook credentials");
+ logger.error(e.getMessage());
+ throw new Exception();
+ }
+
+ return token;
+ }
+
+
+}