X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcontroller%2FActionPolicyDictionaryController.java;fp=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcontroller%2FActionPolicyDictionaryController.java;h=3d275c3d93a5e045946997fd5a89e7eec4885dd4;hb=ccc932599675c927519040399b031ff1d10d9510;hp=02b0707b6713b3646cd8cd462892fd9806ec87ff;hpb=47c1630d48e40e1fbc051fa6eae251ffbe1d4945;p=policy%2Fengine.git diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java index 02b0707b6..3d275c3d9 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java @@ -21,28 +21,21 @@ package org.onap.policy.pap.xacml.rest.controller; import java.io.IOException; -import java.io.PrintWriter; import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.json.JSONObject; -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; -import org.onap.policy.pap.xacml.rest.util.JsonMessage; +import org.onap.policy.pap.xacml.rest.util.DictionaryUtils; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.ActionPolicyDict; import org.onap.policy.rest.jpa.UserInfo; -import org.onap.policy.utils.PolicyUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; 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; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -51,12 +44,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; @Controller public class ActionPolicyDictionaryController { - - private static final Logger LOGGER = FlexLogger.getLogger(ActionPolicyDictionaryController.class); - + private static CommonClassDao commonClassDao; - private static String utf8 = "UTF-8"; + private static String operation = "operation"; private static String attributeName = "attributeName"; + private static String actionDatas = "actionPolicyDictionaryDatas"; + @Autowired public ActionPolicyDictionaryController(CommonClassDao commonClassDao){ ActionPolicyDictionaryController.commonClassDao = commonClassDao; @@ -65,190 +58,91 @@ public class ActionPolicyDictionaryController { public void setCommonClassDao(CommonClassDao commonClassDao){ ActionPolicyDictionaryController.commonClassDao = commonClassDao; } - /* - * This is an empty constructor - */ - public ActionPolicyDictionaryController(){ + public ActionPolicyDictionaryController(){ + super(); } - public UserInfo getUserInfo(String loginId){ - return (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", loginId); + private DictionaryUtils getDictionaryUtilsInstance(){ + return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils(); } - - @RequestMapping(value={"/get_ActionPolicyDictDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) + + @RequestMapping(value={"/get_ActionPolicyDictDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) public void getActionEntitybyName(HttpServletResponse response){ - try{ - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - model.put("actionPolicyDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(ActionPolicyDict.class, attributeName))); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - LOGGER.error(e.getMessage(),e); - } + DictionaryUtils utils = getDictionaryUtilsInstance(); + utils.getDataByEntity(response, actionDatas, attributeName, ActionPolicyDict.class); } - @RequestMapping(value={"/get_ActionPolicyDictData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value={"/get_ActionPolicyDictData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) public void getActionPolicyDictionaryEntityData(HttpServletResponse response){ - try{ - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - model.put("actionPolicyDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(ActionPolicyDict.class))); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.addHeader("successMapKey", "success"); - response.addHeader("operation", "getDictionary"); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - LOGGER.error(e.getMessage(),e); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - response.addHeader("error", "dictionaryDBQuery"); - } + DictionaryUtils utils = getDictionaryUtilsInstance(); + utils.getData(response, actionDatas, ActionPolicyDict.class); } - @RequestMapping(value={"/action_dictionary/save_ActionDict"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) - public ModelAndView saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException { + @RequestMapping(value={"/action_dictionary/save_ActionDict"}, method={RequestMethod.POST}) + public ModelAndView saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{ + DictionaryUtils utils = getDictionaryUtilsInstance(); try { - boolean duplicateflag = false; - boolean isFakeUpdate = false; - boolean fromAPI = false; - - if (request.getParameter("apiflag")!=null && ("api").equalsIgnoreCase(request.getParameter("apiflag"))) { - fromAPI = true; - } + boolean fromAPI = utils.isRequestFromAPI(request); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); JsonNode root = mapper.readTree(request.getReader()); ActionPolicyDict actionPolicyDict = null; ActionAdapter adapter = null; String userId = null; - - if(fromAPI) { + if(fromAPI){ actionPolicyDict = mapper.readValue(root.get("dictionaryFields").toString(), ActionPolicyDict.class); adapter = mapper.readValue(root.get("dictionaryFields").toString(), ActionAdapter.class); userId = "API"; - - //check if update operation or create, get id for data to be updated and update attributeData - if (("update").equals(request.getParameter("operation"))) { - List duplicateData = commonClassDao.checkDuplicateEntry(actionPolicyDict.getAttributeName(), attributeName, ActionPolicyDict.class); - ActionPolicyDict data = (ActionPolicyDict) duplicateData.get(0); - int id = data.getId(); - if(id==0){ - isFakeUpdate=true; - actionPolicyDict.setId(1); - } else { - actionPolicyDict.setId(id); - } - actionPolicyDict.setUserCreatedBy(this.getUserInfo(userId)); - } - } else { + }else{ actionPolicyDict = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionPolicyDict.class); adapter = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionAdapter.class); userId = root.get("userid").textValue(); } - StringBuilder header = new StringBuilder(); - int counter = 0; - if(!adapter.getHeaders().isEmpty()){ - for(Object attribute : adapter.getHeaders()){ - if(attribute instanceof LinkedHashMap){ - String key = ((LinkedHashMap) attribute).get("option").toString(); - String value = ((LinkedHashMap) attribute).get("number").toString(); - if(counter>0){ - header.append(":"); - } - header.append(key).append("=").append(value); - counter ++; - } + UserInfo userInfo = utils.getUserInfo(userId); + + List duplicateData = commonClassDao.checkDuplicateEntry(actionPolicyDict.getAttributeName(), attributeName, ActionPolicyDict.class); + boolean duplicateflag = false; + if(!duplicateData.isEmpty()){ + ActionPolicyDict data = (ActionPolicyDict) duplicateData.get(0); + if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){ + actionPolicyDict.setId(data.getId()); + }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || + (request.getParameter(operation) == null && (data.getId() != actionPolicyDict.getId()))){ + duplicateflag = true; } } - actionPolicyDict.setHeader(header.toString()); - if(actionPolicyDict.getId() == 0){ - List duplicateData = commonClassDao.checkDuplicateEntry(actionPolicyDict.getAttributeName(), attributeName, ActionPolicyDict.class); - if(!duplicateData.isEmpty()){ - duplicateflag = true; - }else{ - actionPolicyDict.setUserCreatedBy(this.getUserInfo(userId)); - actionPolicyDict.setUserModifiedBy(this.getUserInfo(userId)); + actionPolicyDict.setHeader(utils.appendKeyValue(adapter.getHeaders(), ":", "=")); + + String responseString = null; + if(!duplicateflag){ + actionPolicyDict.setUserModifiedBy(userInfo); + if(actionPolicyDict.getId() == 0){ + actionPolicyDict.setUserCreatedBy(userInfo); commonClassDao.save(actionPolicyDict); - } - }else{ - if(!isFakeUpdate) { - actionPolicyDict.setUserModifiedBy(this.getUserInfo(userId)); + }else{ actionPolicyDict.setModifiedDate(new Date()); commonClassDao.update(actionPolicyDict); - } - } - - String responseString = null; - if(duplicateflag) { - responseString = "Duplicate"; - } else { + } responseString = mapper.writeValueAsString(commonClassDao.getData(ActionPolicyDict.class)); + }else{ + responseString = "Duplicate"; } - - if (fromAPI) { - if (responseString!=null && !("Duplicate").equals(responseString)) { - if(isFakeUpdate) { - responseString = "Exists"; - } else { - responseString = "Success"; - } - } - - ModelAndView result = new ModelAndView(); - result.setViewName(responseString); - return result; - } else { - response.setCharacterEncoding(utf8); - response.setContentType("application / json"); - request.setCharacterEncoding(utf8); - - PrintWriter out = response.getWriter(); - JSONObject j = new JSONObject("{actionPolicyDictionaryDatas: " + responseString + "}"); - out.write(j.toString()); - - return null; + if(fromAPI){ + return utils.getResultForApi(responseString); + }else{ + utils.setResponseData(response, actionDatas, responseString); } - } - catch (Exception e){ - LOGGER.error(e); - response.setCharacterEncoding(utf8); - request.setCharacterEncoding(utf8); - PrintWriter out = response.getWriter(); - out.write(PolicyUtils.CATCH_EXCEPTION); + }catch(Exception e){ + utils.setErrorResponseData(response, e); } return null; } - @RequestMapping(value={"/action_dictionary/remove_actionPolicyDict"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) + @RequestMapping(value={"/action_dictionary/remove_actionPolicyDict"}, method={RequestMethod.POST}) public void removeActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException { - try{ - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - JsonNode root = mapper.readTree(request.getReader()); - ActionPolicyDict actionPolicyDict = mapper.readValue(root.get("data").toString(), ActionPolicyDict.class); - commonClassDao.delete(actionPolicyDict); - response.setCharacterEncoding(utf8); - response.setContentType("application / json"); - request.setCharacterEncoding(utf8); - - PrintWriter out = response.getWriter(); - - String responseString = mapper.writeValueAsString(ActionPolicyDictionaryController.commonClassDao.getData(ActionPolicyDict.class)); - JSONObject j = new JSONObject("{actionPolicyDictionaryDatas: " + responseString + "}"); - out.write(j.toString()); - } - catch (Exception e){ - LOGGER.error(e); - response.setCharacterEncoding(utf8); - request.setCharacterEncoding(utf8); - PrintWriter out = response.getWriter(); - out.write(e.getMessage()); - } + DictionaryUtils utils = getDictionaryUtilsInstance(); + utils.removeData(request, response, actionDatas, ActionPolicyDict.class); } }