[Policy-52, Policy-92, Policy-93] Policy Enhancements and bugfixes
[policy/engine.git] / ECOMP-PDP-REST / src / main / java / org / openecomp / policy / pdp / rest / api / services / CreateUpdateConfigPolicyService.java
index 850115f..6dde8a2 100644 (file)
@@ -37,7 +37,7 @@ import org.openecomp.policy.xacml.api.XACMLErrorConstants;
 import org.springframework.http.HttpStatus;
 
 public class CreateUpdateConfigPolicyService {
-    private static Logger LOGGER = FlexLogger.getLogger(CreateUpdateConfigPolicyService.class.getName());
+    private static final Logger LOGGER = FlexLogger.getLogger(CreateUpdateConfigPolicyService.class.getName());
     
     private String response = null;
     private HttpStatus status = HttpStatus.BAD_REQUEST;
@@ -75,16 +75,32 @@ public class CreateUpdateConfigPolicyService {
         Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
         attributes.put(AttributeType.MATCHING, configPolicyAPIRequest.getConfigAttributes());
         policyParameters.setAttributes(attributes);
-        policyParameters.setConfigBodyType(PolicyType.valueOf(configPolicyAPIRequest.getConfigType()));
+        if(configPolicyAPIRequest.getConfigType()==null){
+               String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy ConfigType given.";
+            LOGGER.error(message);
+            throw new PolicyException(message);
+        }
+        try{
+               policyParameters.setConfigBodyType(PolicyType.valueOf(configPolicyAPIRequest.getConfigType()));
+        }catch(IllegalArgumentException e){
+               String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Improper ConfigType given.";
+            LOGGER.error(message, e);
+            throw new PolicyException(message);
+        }
         policyParameters.setConfigBody(configPolicyAPIRequest.getBody());
         policyParameters.setRiskLevel(configPolicyAPIRequest.getRiskLevel());
         policyParameters.setRiskType(configPolicyAPIRequest.getRiskType());
         policyParameters.setGuard(Boolean.parseBoolean(configPolicyAPIRequest.getGuard()));
-        try {
-            policyParameters.setTtlDate(new SimpleDateFormat("dd-MM-yyyy").parse(configPolicyAPIRequest.getTtlDate()));
-        } catch (ParseException e) {
-            LOGGER.warn("Error Parsing date given " + configPolicyAPIRequest.getTtlDate());
+        if(configPolicyAPIRequest.getTtlDate()==null){
+               LOGGER.warn("No TTL date given ");
             policyParameters.setTtlDate(null);
+        }else{
+               try {
+                policyParameters.setTtlDate(new SimpleDateFormat("dd-MM-yyyy").parse(configPolicyAPIRequest.getTtlDate()));
+            } catch (ParseException e) {
+                LOGGER.warn("Error Parsing date given " + configPolicyAPIRequest.getTtlDate(), e);
+                policyParameters.setTtlDate(null);
+            }
         }
         CreateUpdatePolicyService createUpdatePolicyService = new CreateUpdatePolicyServiceImpl(policyParameters, requestID, updateFlag);
         status = createUpdatePolicyService.getResponseCode();