Merge the POMBA code to ONAP AAI data router
[aai/data-router.git] / src / main / java / org / onap / aai / datarouter / entity / POAServiceInstanceEntity.java
1 /**\r
2  * ============LICENSE_START=======================================================\r
3  * org.onap.aai\r
4  * ================================================================================\r
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
6  * Copyright © 2017-2018 Amdocs\r
7  * ================================================================================\r
8  * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * you may not use this file except in compliance with the License.\r
10  * You may obtain a copy of the License at\r
11  *\r
12  *       http://www.apache.org/licenses/LICENSE-2.0\r
13  *\r
14  * Unless required by applicable law or agreed to in writing, software\r
15  * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * See the License for the specific language governing permissions and\r
18  * limitations under the License.\r
19  * ============LICENSE_END=========================================================\r
20  */\r
21 package org.onap.aai.datarouter.entity;\r
22 \r
23 import com.google.gson.Gson;\r
24 import com.google.gson.GsonBuilder;\r
25 import javax.ws.rs.core.Response.Status;\r
26 import org.onap.aai.cl.api.Logger;\r
27 import org.onap.aai.cl.eelf.LoggerFactory;\r
28 import org.onap.aai.datarouter.exception.POAAuditException;\r
29 import org.onap.aai.datarouter.logging.DataRouterMsgs;\r
30 import org.onap.aai.datarouter.service.AuditService;\r
31 \r
32 /**\r
33  * This class includes the POMBA rest call message body which triggers the audit process\r
34  *\r
35  */\r
36 public class POAServiceInstanceEntity\r
37 {\r
38     private static final String ATTR_SERVICE_INST_ID = "serviceInstanceId";\r
39     private static final String ATTR_SERVICE_TYPE = "serviceType";\r
40     private static final String ATTR_MODEL_VERSION_ID = "modelVersionId";\r
41     private static final String ATTR_MODEL_INVARIANT_ID = "modelInvariantId";\r
42     private static final String ATTR_CUSTOMER_ID = "customerId";\r
43 \r
44     private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();\r
45 \r
46     private String xFromAppId;\r
47     private String xTransactionId;\r
48     private String serviceInstanceId;\r
49     private String serviceType;\r
50     private String modelVersionId;\r
51     private String modelInvariantId;\r
52     private String customerId;\r
53 \r
54     private static Logger logger = LoggerFactory.getInstance().getLogger(POAServiceInstanceEntity.class.getName());\r
55 \r
56 \r
57     public String getxFromAppId() {\r
58         return xFromAppId;\r
59     }\r
60 \r
61     public void setxFromAppId(String xFromAppId) {\r
62         this.xFromAppId = xFromAppId;\r
63     }\r
64 \r
65     public String getxTransactionId() {\r
66         return xTransactionId;\r
67     }\r
68 \r
69     public void setxTransactionId(String xTransactionId) {\r
70         this.xTransactionId = xTransactionId;\r
71     }\r
72 \r
73     public String getServiceInstanceId() {\r
74         return serviceInstanceId;\r
75     }\r
76 \r
77     public void setServiceInstanceId(String serviceInstanceId) {\r
78         this.serviceInstanceId = serviceInstanceId;\r
79     }\r
80 \r
81     public String getServiceType() {\r
82         return serviceType;\r
83     }\r
84 \r
85     public void setServiceType(String serviceType) {\r
86         this.serviceType = serviceType;\r
87     }\r
88 \r
89     public String getModelVersionId() {\r
90         return modelVersionId;\r
91     }\r
92 \r
93     public void setModelVersionId(String modelVersionId) {\r
94         this.modelVersionId = modelVersionId;\r
95     }\r
96 \r
97     public String getModelInvariantId() {\r
98         return modelInvariantId;\r
99     }\r
100 \r
101     public void setModelInvariantId(String modelInvariantId) {\r
102         this.modelInvariantId = modelInvariantId;\r
103     }\r
104 \r
105     public String getCustomerId() {\r
106         return customerId;\r
107     }\r
108 \r
109     public void setCustomerId(String customerId) {\r
110         this.customerId = customerId;\r
111     }\r
112 \r
113 \r
114     public String toJson() {\r
115         return gson.toJson(this);\r
116     }\r
117 \r
118 \r
119     public static POAServiceInstanceEntity fromJson(String payload) throws POAAuditException {\r
120 \r
121         if (payload == null || payload.isEmpty()) {\r
122             throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST);\r
123         }\r
124 \r
125         try {\r
126             return gson.fromJson(payload, POAServiceInstanceEntity.class);\r
127         } catch (Exception ex) {\r
128             logger.debug("Invalid Json Payload: " + payload);\r
129             throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, ex.getMessage());\r
130         }\r
131     }\r
132 \r
133 \r
134     /**\r
135      * Validates this service instance; only the attributes that are expected in request body are verified.\r
136      * @throws POAAuditException if the service instance is invalid\r
137      */\r
138     public void validate() throws POAAuditException {\r
139 \r
140         if(serviceInstanceId == null || serviceInstanceId.isEmpty()) {\r
141             String error = "Missing attribute: " + ATTR_SERVICE_INST_ID;\r
142             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
143         }\r
144 \r
145         if(serviceType == null || serviceType.isEmpty()) {\r
146             String error = "Missing attribute: " + ATTR_SERVICE_TYPE;\r
147             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
148         }\r
149 \r
150         if(modelVersionId == null || modelVersionId.isEmpty()) {\r
151             String error = "Missing attribute: " + ATTR_MODEL_VERSION_ID;\r
152             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
153         }\r
154 \r
155         if(modelInvariantId == null || modelInvariantId.isEmpty()) {\r
156             String error = "Missing attribute: " + ATTR_MODEL_INVARIANT_ID;\r
157             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
158         }\r
159 \r
160         if(customerId == null || customerId.isEmpty()) {\r
161             String error = "Missing attribute: " + ATTR_CUSTOMER_ID;\r
162             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
163         }\r
164     }\r
165 \r
166 \r
167     @Override\r
168     public String toString() {\r
169         return "ServiceInstance [xFromAppId=" + xFromAppId + ", xTransactionId=" + xTransactionId\r
170                 + ", serviceInstanceId=" + serviceInstanceId + ", serviceType=" + serviceType + ", modelVersionId="\r
171                 + modelVersionId + ", modelInvariantId=" + modelInvariantId + ", customerId=" + customerId + "]";\r
172     }\r
173 }\r