Update Data Router to support API V1
[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_MODEL_VERSION_ID = "modelVersionId";\r
40     private static final String ATTR_MODEL_INVARIANT_ID = "modelInvariantId";\r
41 \r
42     private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();\r
43 \r
44     private String xFromAppId;\r
45     private String xTransactionId;\r
46     private String serviceInstanceId;\r
47     private String modelVersionId;\r
48     private String modelInvariantId;\r
49 \r
50     private static Logger logger = LoggerFactory.getInstance().getLogger(POAServiceInstanceEntity.class.getName());\r
51 \r
52 \r
53     public String getxFromAppId() {\r
54         return xFromAppId;\r
55     }\r
56 \r
57     public void setxFromAppId(String xFromAppId) {\r
58         this.xFromAppId = xFromAppId;\r
59     }\r
60 \r
61     public String getxTransactionId() {\r
62         return xTransactionId;\r
63     }\r
64 \r
65     public void setxTransactionId(String xTransactionId) {\r
66         this.xTransactionId = xTransactionId;\r
67     }\r
68 \r
69     public String getServiceInstanceId() {\r
70         return serviceInstanceId;\r
71     }\r
72 \r
73     public void setServiceInstanceId(String serviceInstanceId) {\r
74         this.serviceInstanceId = serviceInstanceId;\r
75     }\r
76 \r
77     public String getModelVersionId() {\r
78         return modelVersionId;\r
79     }\r
80 \r
81     public void setModelVersionId(String modelVersionId) {\r
82         this.modelVersionId = modelVersionId;\r
83     }\r
84 \r
85     public String getModelInvariantId() {\r
86         return modelInvariantId;\r
87     }\r
88 \r
89     public void setModelInvariantId(String modelInvariantId) {\r
90         this.modelInvariantId = modelInvariantId;\r
91     }\r
92 \r
93     public String toJson() {\r
94         return gson.toJson(this);\r
95     }\r
96 \r
97 \r
98     public static POAServiceInstanceEntity fromJson(String payload) throws POAAuditException {\r
99 \r
100         if (payload == null || payload.isEmpty()) {\r
101             throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST);\r
102         }\r
103 \r
104         try {\r
105             return gson.fromJson(payload, POAServiceInstanceEntity.class);\r
106         } catch (Exception ex) {\r
107             logger.debug("Invalid Json Payload: " + payload);\r
108             throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, ex.getMessage());\r
109         }\r
110     }\r
111 \r
112 \r
113     /**\r
114      * Validates this service instance; only the attributes that are expected in request body are verified.\r
115      * @throws POAAuditException if the service instance is invalid\r
116      */\r
117     public void validate() throws POAAuditException {\r
118 \r
119         if(serviceInstanceId == null || serviceInstanceId.isEmpty()) {\r
120             String error = "Missing attribute: " + ATTR_SERVICE_INST_ID;\r
121             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
122         }\r
123 \r
124         if(modelVersionId == null || modelVersionId.isEmpty()) {\r
125             String error = "Missing attribute: " + ATTR_MODEL_VERSION_ID;\r
126             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
127         }\r
128 \r
129         if(modelInvariantId == null || modelInvariantId.isEmpty()) {\r
130             String error = "Missing attribute: " + ATTR_MODEL_INVARIANT_ID;\r
131             throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
132         }\r
133 \r
134     }\r
135 \r
136 \r
137     @Override\r
138     public String toString() {\r
139         return "ServiceInstance [xFromAppId=" + xFromAppId + ", xTransactionId=" + xTransactionId\r
140                 + ", serviceInstanceId=" + serviceInstanceId + ", modelVersionId="\r
141                 + modelVersionId + ", modelInvariantId=" + modelInvariantId + "]";\r
142     }\r
143 }\r