Update vulnerable package dependencies
[sdc.git] / integration-tests / src / test / java / org / onap / sdc / backend / ci / tests / utils / rest / UserRestUtils.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.sdc.backend.ci.tests.utils.rest;
22
23 import com.google.gson.Gson;
24 import org.apache.commons.lang3.StringUtils;
25 import org.onap.sdc.backend.ci.tests.datatypes.http.HttpHeaderEnum;
26 import org.onap.sdc.backend.ci.tests.datatypes.http.HttpRequest;
27 import org.onap.sdc.backend.ci.tests.datatypes.http.RestResponse;
28 import org.openecomp.sdc.be.model.User;
29 import org.onap.sdc.backend.ci.tests.api.Urls;
30 import org.onap.sdc.backend.ci.tests.config.Config;
31 import org.onap.sdc.backend.ci.tests.utils.Utils;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34
35 import java.io.IOException;
36 import java.util.HashMap;
37 import java.util.Map;
38
39 public class UserRestUtils extends BaseRestUtils {
40
41         static Gson gson = new Gson();
42
43         static Logger logger = LoggerFactory.getLogger(UserRestUtils.class.getName());
44         static String contentTypeHeaderData = "application/json";
45         static String acceptHeaderDate = "application/json";
46
47         public UserRestUtils() {
48                 super();
49         }
50
51         public static RestResponse createUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
52
53                 Config config = Utils.getConfig();
54
55                 Map<String, String> headersMap = new HashMap<String, String>();
56                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
57                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
58                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
59
60                 String userBodyJson = gson.toJson(sdncUserDetails);
61                 HttpRequest http = new HttpRequest();
62                 String url = String.format(Urls.CREATE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
63
64                 logger.debug("Send POST request to create user: {}", url);
65                 logger.debug("User body: {}", userBodyJson);
66                 logger.debug("User headers: {}", headersMap);
67                 RestResponse sendCreateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
68
69                 return sendCreateUserRequest;
70
71         }
72
73         public static RestResponse deactivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
74                 return deleteUser(sdncUserDetails, sdncModifierDetails, true);
75         }
76
77         public static RestResponse deActivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
78                 return deleteUser(sdncUserDetails, sdncModifierDetails, false);
79         }
80
81         public static RestResponse deleteUser(User sdncUserDetails, User sdncModifierDetails, boolean isForceDelete)
82                         throws IOException {
83
84                 Config config = Utils.getConfig();
85
86                 Map<String, String> headersMap = new HashMap<String, String>();
87                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
88                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
89                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
90                 if (isForceDelete) {
91                         headersMap.put(User.FORCE_DELETE_HEADER_FLAG, User.FORCE_DELETE_HEADER_FLAG);
92                 }
93
94                 HttpRequest http = new HttpRequest();
95                 String url = String.format(Urls.DELETE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
96                                 sdncUserDetails.getUserId());
97                 RestResponse sendDeleteUserRequest = http.httpSendDelete(url, headersMap);
98                 return sendDeleteUserRequest;
99
100         }
101
102         public static RestResponse updateUser(User sdncUserDetails, User sdncModifierDetails)
103                         throws IOException, CloneNotSupportedException {
104
105                 Config config = Utils.getConfig();
106                 User user = new User(sdncModifierDetails);
107
108                 Map<String, String> headersMap = new HashMap<String, String>();
109                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
110                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
111                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
112
113                 user.setUserId(StringUtils.EMPTY);
114                 user.setRole(StringUtils.EMPTY);
115
116                 Gson gson = new Gson();
117                 String userBodyJson = gson.toJson(user);
118                 logger.debug("userBodyJson: {}", userBodyJson);
119                 HttpRequest http = new HttpRequest();
120                 String url = String.format(Urls.UPDATE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
121                                 sdncModifierDetails.getUserId());
122                 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
123
124                 return sendUpdateUserRequest;
125         }
126
127         /// Benny
128         public static RestResponse updateUserRole(User sdncUserDetails, User sdncModifierDetails, String userIdToUpdate)
129                         throws IOException {
130
131                 Config config = Utils.getConfig();
132
133                 Map<String, String> headersMap = new HashMap<String, String>();
134                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
135                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
136                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
137
138                 Gson gson = new Gson();
139                 String userBodyJson = gson.toJson(sdncUserDetails);
140                 logger.debug("userBodyJson: {}", userBodyJson);
141                 HttpRequest http = new HttpRequest();
142                 String url = String.format(Urls.UPDATE_USER_ROLE, config.getCatalogBeHost(), config.getCatalogBePort(),
143                                 userIdToUpdate);
144                 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
145
146                 return sendUpdateUserRequest;
147
148         }
149
150         public static RestResponse getUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
151
152                 Config config = Utils.getConfig();
153
154                 Map<String, String> headersMap = new HashMap<String, String>();
155                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
156                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
157                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
158                 HttpRequest http = new HttpRequest();
159                 String url = String.format(Urls.GET_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
160                                 sdncUserDetails.getUserId());
161                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
162                 return sendGetUserRequest;
163
164         }
165         
166         public static RestResponse getUserRole(User sdncUserDetails, User sdncModifierDetails) throws IOException {
167
168                 Config config = Utils.getConfig();
169
170                 Map<String, String> headersMap = new HashMap<>();
171                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
172                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
173                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
174                 HttpRequest http = new HttpRequest();
175                 String url = String.format(Urls.GET_USER_ROLE, config.getCatalogBeHost(), config.getCatalogBePort(),
176                                 sdncUserDetails.getUserId());
177                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
178                 return sendGetUserRequest;
179
180         }
181         
182         
183
184         public static RestResponse getAllAdminUsers(User sdncModifierDetails) throws IOException {
185
186                 Config config = Utils.getConfig();
187
188                 Map<String, String> headersMap = new HashMap<>();
189                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
190                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
191                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
192
193                 // Gson gson = new Gson();
194                 // String userBodyJson = gson.toJson(sdncModifierDetails);
195                 // System.out.println(userBodyJson);
196                 HttpRequest http = new HttpRequest();
197                 String url = String.format(Urls.GET_ALL_ADMIN_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
198                 logger.debug("Send following url: {} and headers: {}",url, headersMap.toString());
199                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
200
201                 return sendGetUserRequest;
202
203         }
204
205         // US571255
206         public static RestResponse getUsersByRoles(User sdncModifierDetails, String roles) throws IOException {
207
208                 Config config = Utils.getConfig();
209                 Map<String, String> headersMap = new HashMap<String, String>();
210                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
211                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
212                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
213                 HttpRequest http = new HttpRequest();
214                 String url;
215                 if (roles == "/") {
216                         url = String.format(Urls.GET_ALL_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
217                 } else {
218                         url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(), roles);
219
220                 }
221                 logger.debug("Send following url: {} and headers: {}",url, headersMap.toString());
222                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
223                 return sendGetUserRequest;
224         }
225
226         public static RestResponse getUsersByRolesHttpCspAtuUidIsMissing(User sdncModifierDetails, String roles)
227                         throws Exception {
228
229                 Config config = Utils.getConfig();
230                 Map<String, String> headersMap = new HashMap<String, String>();
231                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
232                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
233                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
234                 headersMap.remove("USER_ID");
235                 HttpRequest http = new HttpRequest();
236                 String url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(),
237                                 roles);
238                 logger.debug(
239                                 "Send following url without USER_ID header : " + url + "  headers: " + headersMap.toString());
240
241                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
242                 return sendGetUserRequest;
243         }
244
245         public static RestResponse authorizedUserTowardsCatalogBe(User sdncUserDetails) throws IOException {
246
247                 Map<String, String> headersMap = new HashMap<String, String>();
248                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
249                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
250                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
251                 if (sdncUserDetails.getFirstName() != null) {
252                         headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
253                 }
254                 if (sdncUserDetails.getLastName() != null) {
255                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
256                 }
257                 if (sdncUserDetails.getEmail() != null) {
258                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
259                 }
260
261                 logger.debug("headersMap: {}", headersMap.toString());
262
263                 Config config = Utils.getConfig();
264                 HttpRequest http = new HttpRequest();
265                 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
266                 logger.debug("Send GET request to login as seal user : {}", url);
267                 return http.httpSendGet(url, headersMap);
268         }
269
270         public static RestResponse authorizedUserTowardsCatalogBeQA(User sdncUserDetails) throws IOException {
271
272                 Map<String, String> headersMap = new HashMap<String, String>();
273                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
274                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
275                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
276                 if (sdncUserDetails.getFirstName() != null) {
277                         headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
278                 }
279                 if (sdncUserDetails.getLastName() != null) {
280                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
281                 }
282                 if (sdncUserDetails.getEmail() != null) {
283                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
284                 }
285
286                 logger.debug("headersMap: {}", headersMap.toString());
287
288                 Config config = Utils.getConfig();
289                 HttpRequest http = new HttpRequest();
290                 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
291                 logger.debug("Send GET request to login as seal user : {}", url);
292                 return http.httpSendGet(url, headersMap);
293         }
294
295 }