2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
8 * Unless otherwise specified, all software contained herein is licensed
9 * under the Apache License, Version 2.0 (the "License");
10 * you may not use this software except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * Unless otherwise specified, all documentation contained herein is licensed
22 * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 * you may not use this documentation except in compliance with the License.
24 * You may obtain a copy of the License at
26 * https://creativecommons.org/licenses/by/4.0/
28 * Unless required by applicable law or agreed to in writing, documentation
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
34 * ============LICENSE_END============================================
38 package org.onap.portalapp.portal.controller;
40 import java.io.IOException;
41 import java.util.List;
44 import javax.servlet.http.HttpServletRequest;
45 import javax.servlet.http.HttpServletResponse;
47 import org.onap.portalapp.controller.EPRestrictedBaseController;
48 import org.onap.portalapp.portal.domain.AdminUserApplications;
49 import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel;
50 import org.onap.portalapp.portal.domain.AppsResponse;
51 import org.onap.portalapp.portal.domain.EPApp;
52 import org.onap.portalapp.portal.domain.EPUser;
53 import org.onap.portalapp.portal.domain.EcompApp;
54 import org.onap.portalapp.portal.domain.UserRoles;
55 import org.onap.portalapp.portal.logging.aop.EPAuditLog;
56 import org.onap.portalapp.portal.service.AdminRolesService;
57 import org.onap.portalapp.portal.service.EPAppService;
58 import org.onap.portalapp.portal.service.EPLeftMenuService;
59 import org.onap.portalapp.portal.transport.EPAppsManualPreference;
60 import org.onap.portalapp.portal.transport.EPAppsSortPreference;
61 import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref;
62 import org.onap.portalapp.portal.transport.EPWidgetsSortPreference;
63 import org.onap.portalapp.portal.transport.FieldsValidator;
64 import org.onap.portalapp.portal.transport.LocalRole;
65 import org.onap.portalapp.portal.transport.OnboardingApp;
66 import org.onap.portalapp.portal.utils.EcompPortalUtils;
67 import org.onap.portalapp.portal.utils.PortalConstants;
68 import org.onap.portalapp.util.EPUserUtils;
69 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
70 import org.onap.portalsdk.core.util.SystemProperties;
71 import org.onap.portalsdk.core.web.support.AppUtils;
72 import org.springframework.beans.factory.annotation.Autowired;
73 import org.springframework.context.annotation.EnableAspectJAutoProxy;
74 import org.springframework.http.HttpEntity;
75 import org.springframework.http.HttpHeaders;
76 import org.springframework.http.MediaType;
77 import org.springframework.web.bind.annotation.PathVariable;
78 import org.springframework.web.bind.annotation.RequestBody;
79 import org.springframework.web.bind.annotation.RequestMapping;
80 import org.springframework.web.bind.annotation.RequestMethod;
81 import org.springframework.web.bind.annotation.RestController;
83 import com.fasterxml.jackson.core.JsonProcessingException;
84 import com.fasterxml.jackson.databind.ObjectMapper;
87 @EnableAspectJAutoProxy
89 public class AppsController extends EPRestrictedBaseController {
90 private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsController.class);
93 private AdminRolesService adminRolesService;
96 private EPAppService appService;
99 private EPLeftMenuService leftMenuService;
102 * RESTful service method to fetch all Applications available to current
108 * HttpServletResponse
109 * @return List<EcompApp>
111 @RequestMapping(value = { "/portalApi/userApps" }, method = RequestMethod.GET, produces = "application/json")
112 public List<EcompApp> getUserApps(HttpServletRequest request, HttpServletResponse response) {
113 EPUser user = EPUserUtils.getUserSession(request);
114 List<EcompApp> ecompApps = null;
118 EcompPortalUtils.setBadPermissions(user, response, "getUserApps");
120 ecompApps = appService.transformAppsToEcompApps(appService.getUserApps(user));
121 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApps", "GET result =", ecompApps);
123 } catch (Exception e) {
124 logger.error(EELFLoggerDelegate.errorLogger, "getUserApps failed", e);
131 * RESTful service method to fetch all applications accessible to the
132 * current user, with personalizations.
137 * HttpServletResponse
138 * @return List<EcompApp>
139 * @throws IOException
142 @RequestMapping(value = { "/portalApi/persUserApps" }, method = RequestMethod.GET, produces = "application/json")
143 public List<EcompApp> getPersUserApps(HttpServletRequest request, HttpServletResponse response) throws IOException {
144 EPUser user = EPUserUtils.getUserSession(request);
145 List<EcompApp> ecompApps = null;
148 EcompPortalUtils.setBadPermissions(user, response, "getPersUserApps");
150 List<EPApp> apps = null;
151 if (adminRolesService.isSuperAdmin(user))
152 apps = appService.getPersAdminApps(user);
154 apps = appService.getPersUserApps(user);
155 ecompApps = appService.transformAppsToEcompApps(apps);
156 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userPersApps", "GET result =", ecompApps);
158 } catch (Exception e) {
159 logger.error(EELFLoggerDelegate.errorLogger, "getPersUserApps failed", e);
160 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
166 * RESTful service method to fetch applications for which the current user
167 * is an Administrator
172 * HttpServletResponse
173 * @return List<AppIdAndNameTransportModel>
175 @RequestMapping(value = { "/portalApi/adminApps" }, method = RequestMethod.GET, produces = "application/json")
176 public List<AppIdAndNameTransportModel> getAdminApps(HttpServletRequest request, HttpServletResponse response) {
177 EPUser user = EPUserUtils.getUserSession(request);
178 List<AppIdAndNameTransportModel> adminApps = null;
181 if (!adminRolesService.isAccountAdmin(user) && !adminRolesService.isRoleAdmin(user) ) {
182 EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
184 adminApps = appService.getAdminApps(user);
185 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminApps", "GET result =", adminApps);
187 } catch (Exception e) {
188 logger.error(EELFLoggerDelegate.errorLogger, "getAdminApps failed", e);
195 * RESTful service method to fetch Applications for user who is super admin
201 * HttpServletResponse
202 * @return List<AppIdAndNameTransportModel>
204 @RequestMapping(value = {
205 "/portalApi/appsForSuperAdminAndAccountAdmin" }, method = RequestMethod.GET, produces = "application/json")
206 public List<AppIdAndNameTransportModel> getAppsForSuperAdminAndAccountAdmin(HttpServletRequest request,
207 HttpServletResponse response) {
208 EPUser user = EPUserUtils.getUserSession(request);
209 List<AppIdAndNameTransportModel> adminApps = null;
212 if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user) && !adminRolesService.isRoleAdmin(user) ) {
213 EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
215 adminApps = appService.getAppsForSuperAdminAndAccountAdmin(user);
216 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsForSuperAdminAndAccountAdmin",
217 "GET result =", adminApps);
219 } catch (Exception e) {
220 logger.error(EELFLoggerDelegate.errorLogger, "getAppsForSuperAdminAndAccountAdmin failed", e);
227 * RESTful service method to fetch left menu items from the user's session.
232 * HttpServletResponse
233 * @return JSON with left menu
235 @SuppressWarnings({ "rawtypes", "unchecked" })
236 @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
237 public String getLeftMenuItems(HttpServletRequest request, HttpServletResponse response) {
238 String menuList = null;
239 Set menuSet = (Set) AppUtils.getSession(request)
240 .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME));
242 Set roleFunctionSet = (Set) AppUtils.getSession(request)
243 .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME));
245 EPUser user = EPUserUtils.getUserSession(request);
248 menuList = leftMenuService.getLeftMenuItems(user, menuSet, roleFunctionSet);
249 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/leftmenuItems", "GET result =", menuList);
250 } catch (Exception e) {
251 logger.error(EELFLoggerDelegate.errorLogger, "getLeftMenuItems failed", e);
256 @RequestMapping(value = {
257 "/portalApi/userAppsOrderBySortPref" }, method = RequestMethod.GET, produces = "application/json")
258 public List<EcompApp> getUserAppsOrderBySortPref(HttpServletRequest request, HttpServletResponse response) {
259 EPUser user = EPUserUtils.getUserSession(request);
260 List<EcompApp> ecompApps = null;
263 EcompPortalUtils.setBadPermissions(user, response, "getUserAppsOrderBySortPref");
265 String usrSortPref = request.getParameter("mparams");
266 if (usrSortPref.equals("")) {
269 switch (usrSortPref) {
271 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByName(user));
272 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
276 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByLastUsed(user));
277 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
281 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByMostUsed(user));
282 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
286 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByManual(user));
287 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
291 logger.error(EELFLoggerDelegate.errorLogger,
292 "getUserAppsOrderBySortPref failed: no match for " + usrSortPref);
295 } catch (Exception e) {
296 logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsOrderBySortPref failed", e);
302 * Sets the user apps manual sort preference
305 * HTTP servlet request
307 * HTTP servlet response
308 * @param epAppsManualPref
310 * @return FieldsValidator
312 @RequestMapping(value = {
313 "/portalApi/saveUserAppsSortingManual" }, method = RequestMethod.PUT, produces = "application/json")
314 public FieldsValidator putUserAppsSortingManual(HttpServletRequest request,
315 @RequestBody List<EPAppsManualPreference> epAppsManualPref, HttpServletResponse response) {
316 FieldsValidator fieldsValidator = null;
318 EPUser user = EPUserUtils.getUserSession(request);
319 fieldsValidator = appService.saveAppsSortManual(epAppsManualPref, user);
320 response.setStatus(fieldsValidator.httpStatusCode.intValue());
321 } catch (Exception e) {
322 logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingManual failed", e);
324 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppsSortingManual", "PUT result =",
325 response.getStatus());
326 return fieldsValidator;
329 @RequestMapping(value = {
330 "/portalApi/saveUserWidgetsSortManual" }, method = RequestMethod.PUT, produces = "application/json")
331 public FieldsValidator putUserWidgetsSortManual(HttpServletRequest request,
332 @RequestBody List<EPWidgetsSortPreference> saveManualWidgetSData, HttpServletResponse response) {
333 FieldsValidator fieldsValidator = null;
335 EPUser user = EPUserUtils.getUserSession(request);
336 fieldsValidator = appService.saveWidgetsSortManual(saveManualWidgetSData, user);
337 response.setStatus(fieldsValidator.httpStatusCode.intValue());
338 } catch (Exception e) {
339 logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortManual failed", e);
341 // return fieldsValidator;
342 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortManual", "PUT result =",
343 response.getStatus());
344 return fieldsValidator;
347 @RequestMapping(value = {
348 "/portalApi/updateWidgetsSortPref" }, method = RequestMethod.PUT, produces = "application/json")
349 public FieldsValidator putUserWidgetsSortPref(HttpServletRequest request,
350 @RequestBody List<EPWidgetsSortPreference> delManualWidgetData, HttpServletResponse response) {
351 FieldsValidator fieldsValidator = null;
353 EPUser user = EPUserUtils.getUserSession(request);
354 fieldsValidator = appService.deleteUserWidgetSortPref(delManualWidgetData, user);
355 response.setStatus(fieldsValidator.httpStatusCode.intValue());
356 } catch (Exception e) {
357 logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e);
360 // return fieldsValidator;
361 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortPref", "PUT result =",
362 response.getStatus());
363 return fieldsValidator;
367 * Deletes the user app manual sort preference record
370 * HTTP servlet request
372 * HTTP servlet response
373 * @param delManualAppData
375 * @return FieldsValidator
377 @RequestMapping(value = {
378 "/portalApi/UpdateUserAppsSortManual" }, method = RequestMethod.PUT, produces = "application/json")
379 public FieldsValidator deleteUserAppSortManual(HttpServletRequest request,
380 @RequestBody EPDeleteAppsManualSortPref delManualAppData, HttpServletResponse response) {
381 FieldsValidator fieldsValidator = null;
383 EPUser user = EPUserUtils.getUserSession(request);
384 fieldsValidator = appService.deleteUserAppSortManual(delManualAppData, user);
385 response.setStatus(fieldsValidator.httpStatusCode.intValue());
386 } catch (Exception e) {
387 logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e);
390 // return fieldsValidator;
391 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/deleteUserAppSortManual", "PUT result =",
392 response.getStatus());
393 return fieldsValidator;
396 @RequestMapping(value = {
397 "/portalApi/saveUserAppsSortingPreference" }, method = RequestMethod.PUT, produces = "application/json")
398 public FieldsValidator putUserAppsSortingPreference(HttpServletRequest request,
399 @RequestBody EPAppsSortPreference userAppsValue, HttpServletResponse response) {
400 FieldsValidator fieldsValidator = null;
402 EPUser user = EPUserUtils.getUserSession(request);
403 fieldsValidator = appService.saveAppsSortPreference(userAppsValue, user);
404 response.setStatus(fieldsValidator.httpStatusCode.intValue());
405 } catch (Exception e) {
406 logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingPreference failed", e);
410 // return fieldsValidator;
411 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserAppsSortingPreference", "PUT result =",
412 response.getStatus());
413 return fieldsValidator;
416 @RequestMapping(value = {
417 "/portalApi/userAppsSortTypePreference" }, method = RequestMethod.GET, produces = "application/String")
418 public String getUserAppsSortTypePreference(HttpServletRequest request, HttpServletResponse response) {
419 EPUser user = EPUserUtils.getUserSession(request);
420 String userSortPreference = null;
424 EcompPortalUtils.setBadPermissions(user, response, "userAppsSortTypePreference");
426 userSortPreference = appService.getUserAppsSortTypePreference(user);
427 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsSortTypePreference", "GET result =",
430 } catch (Exception e) {
431 logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e);
434 return userSortPreference;
438 * RESTful service method to fetch Application Administrators to Super
439 * Administrator user. Attention: Users which have Super Administrator roles
440 * only are not included!
443 * HTTP servlet request
445 * HTTP servlet response
446 * @return List<AdminUserApplications>
448 @RequestMapping(value = { "/portalApi/accountAdmins" }, method = RequestMethod.GET, produces = "application/json")
449 public List<AdminUserApplications> getAppsAdministrators(HttpServletRequest request, HttpServletResponse response) {
450 EPUser user = EPUserUtils.getUserSession(request);
451 List<AdminUserApplications> admins = null;
453 if (!adminRolesService.isSuperAdmin(user)) {
454 EcompPortalUtils.setBadPermissions(user, response, "getAppsAdministrators");
456 admins = appService.getAppsAdmins();
457 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/accountAdmins", "GET result =", admins);
459 } catch (Exception e) {
460 logger.error(EELFLoggerDelegate.errorLogger, "getAppsAdministrators failed", e);
466 @RequestMapping(value = { "/portalApi/availableApps" }, method = RequestMethod.GET, produces = "application/json")
467 public List<AppsResponse> getApps(HttpServletRequest request, HttpServletResponse response) {
468 EPUser user = EPUserUtils.getUserSession(request);
469 List<AppsResponse> apps = null;
471 if (!adminRolesService.isSuperAdmin(user)) {
472 EcompPortalUtils.setBadPermissions(user, response, "getApps");
474 apps = appService.getAllApps(false);
475 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps);
477 } catch (Exception e) {
478 logger.error(EELFLoggerDelegate.errorLogger, "getApps failed", e);
485 * Gets all apps, both active and inactive; i.e., all on-boarded apps,
486 * regardless of enabled status.
489 * HTTP servlet request
491 * HTTP servlet response
492 * @return List of applications
494 @RequestMapping(value = {
495 "/portalApi/allAvailableApps" }, method = RequestMethod.GET, produces = "application/json")
496 public List<AppsResponse> getAllApps(HttpServletRequest request, HttpServletResponse response) {
497 EPUser user = EPUserUtils.getUserSession(request);
498 List<AppsResponse> apps = null;
500 if (!adminRolesService.isSuperAdmin(user)) {
501 EcompPortalUtils.setBadPermissions(user, response, "getApps");
503 apps = appService.getAllApps(true);
504 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps);
506 } catch (Exception e) {
507 logger.error(EELFLoggerDelegate.errorLogger, "getAllApps failed", e);
516 * HTTP servlet request
518 * HTTP servlet response
519 * @return List of applications
521 @RequestMapping(value = { "/portalApi/appsFullList" }, method = RequestMethod.GET, produces = "application/json")
522 public List<EcompApp> getAppsFullList(HttpServletRequest request, HttpServletResponse response) {
523 EPUser user = EPUserUtils.getUserSession(request);
524 List<EcompApp> ecompApps = null;
526 EcompPortalUtils.setBadPermissions(user, response, "getAppsFullList");
528 ecompApps = appService.getEcompAppAppsFullList();
529 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsFullList", "GET result =", ecompApps);
537 * HTTP servlet request
539 * HTTP servlet response
542 @RequestMapping(value = { "/portalApi/userProfile" }, method = RequestMethod.GET, produces = "application/json")
543 public UserRoles getUserProfile(HttpServletRequest request, HttpServletResponse response) {
544 EPUser user = EPUserUtils.getUserSession(request);
545 UserRoles userAndRoles = null;
548 EcompPortalUtils.setBadPermissions(user, response, "getUserProfile");
550 userAndRoles = appService.getUserProfileNormalized(user);
552 } catch (Exception e) {
553 logger.error(EELFLoggerDelegate.errorLogger, "getUserProfile failed", e);
556 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userProfile", "getUserProfile result =",
564 * HTTP servlet request
567 * @return List<LocalRole>
569 @RequestMapping(value = { "/portalApi/appRoles/{appId}" }, method = {
570 RequestMethod.GET }, produces = "application/json")
571 public List<LocalRole> getAppRoles(HttpServletRequest request, @PathVariable("appId") Long appId,
572 HttpServletResponse response) {
573 List<LocalRole> roleList = null;
574 EPUser user = EPUserUtils.getUserSession(request);
575 EPApp requestedApp = appService.getApp(appId);
576 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, requestedApp)
577 || (adminRolesService.isSuperAdmin(user) && requestedApp.getId() == PortalConstants.PORTAL_APP_ID))) {
579 roleList = appService.getAppRoles(appId);
580 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appRoles/" + appId, "GET result =",
582 } catch (Exception e) {
583 logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles failed", e);
586 EcompPortalUtils.setBadPermissions(user, response, "getAppRoles");
593 * Return single app information with appName as parameter
597 * @return EPApp object
599 @RequestMapping(value = { "/portalApi/singleAppInfo" }, method = {
600 RequestMethod.GET }, produces = "application/json")
601 public EPApp getSingleAppInfo(HttpServletRequest request, HttpServletResponse response) {
603 EPUser user = EPUserUtils.getUserSession(request);
605 String appName = request.getParameter("appParam");
606 app = appService.getAppDetailByAppName(appName);
607 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app)
608 || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID)))
609 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfo" + appName, "GET result =", app);
612 EcompPortalUtils.setBadPermissions(user, response, "createAdmin");
615 } catch (Exception e) {
616 logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e);
623 * Return single app information with appId as parameter
627 * @return EPApp object
629 @RequestMapping(value = { "/portalApi/singleAppInfoById" }, method = {
630 RequestMethod.GET }, produces = "application/json")
631 public EPApp getSingleAppInfoById(HttpServletRequest request, HttpServletResponse response) {
633 EPUser user = EPUserUtils.getUserSession(request);
635 String appId = request.getParameter("appParam");
636 app = appService.getApp(Long.valueOf(appId));
637 if(!EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) {
638 app.setCentralAuth(false);
640 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app)
641 || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID)))
642 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfoById" + appId, "GET result =", app);
645 EcompPortalUtils.setBadPermissions(user, response, "createAdmin");
648 } catch (Exception e) {
649 logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e);
657 * HTTP servlet request
659 * HTTP servlet response
660 * @return List<OnboardingApp>
662 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.GET, produces = "application/json")
663 public List<OnboardingApp> getOnboardingApps(HttpServletRequest request, HttpServletResponse response) {
664 EPUser user = EPUserUtils.getUserSession(request);
665 List<OnboardingApp> onboardingApps = null;
667 if (!adminRolesService.isSuperAdmin(user)) {
668 EcompPortalUtils.setBadPermissions(user, response, "getOnboardingApps");
670 onboardingApps = appService.getOnboardingApps();
671 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "GET result =",
672 "onboardingApps of size " + onboardingApps.size());
674 } catch (Exception e) {
675 logger.error(EELFLoggerDelegate.errorLogger, "getOnboardingApps failed", e);
678 return onboardingApps;
684 * HTTP servlet request
686 * HTTP servlet response
687 * @param modifiedOnboardingApp
689 * @return FieldsValidator
691 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.PUT, produces = "application/json")
692 public FieldsValidator putOnboardingApp(HttpServletRequest request,
693 @RequestBody OnboardingApp modifiedOnboardingApp, HttpServletResponse response) {
694 FieldsValidator fieldsValidator = null;
696 EPApp oldEPApp = null;
698 user = EPUserUtils.getUserSession(request);
699 if (!adminRolesService.isSuperAdmin(user)) {
700 EcompPortalUtils.setBadPermissions(user, response, "putOnboardingApp");
702 oldEPApp = appService.getApp(modifiedOnboardingApp.id);
703 modifiedOnboardingApp.normalize();
704 fieldsValidator = appService.modifyOnboardingApp(modifiedOnboardingApp, user);
705 response.setStatus(fieldsValidator.httpStatusCode.intValue());
707 } catch (Exception e) {
708 logger.error(EELFLoggerDelegate.errorLogger, "putOnboardingApps failed", e);
710 if(response.getStatus()==200) {
712 String oldvaluesAsJson = new ObjectMapper().writeValueAsString(oldEPApp);
713 String newvaluesAsJson = new ObjectMapper().writeValueAsString(modifiedOnboardingApp);
714 logger.info(EELFLoggerDelegate.auditLogger, "/portalApi/onboardingApps, old values ="+oldvaluesAsJson);
715 logger.info(EELFLoggerDelegate.auditLogger, "/portalApi/onboardingApps, loginId="+user.getLoginId()+", new values ="+newvaluesAsJson);
716 } catch (JsonProcessingException e) {
717 logger.error(EELFLoggerDelegate.errorLogger, "putOnboardingApps failed", e);
720 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "PUT result =",
721 response.getStatus());
722 return fieldsValidator;
728 * HTTP servlet request
730 * HTTP servlet response
731 * @param newOnboardingApp
733 * @return FieldsValidator
735 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.POST, produces = "application/json")
736 public FieldsValidator postOnboardingApp(HttpServletRequest request, @RequestBody OnboardingApp newOnboardingApp,
737 HttpServletResponse response) {
738 FieldsValidator fieldsValidator = null;
740 EPUser user = EPUserUtils.getUserSession(request);
741 if (!adminRolesService.isSuperAdmin(user)) {
742 EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps");
744 newOnboardingApp.normalize();
745 fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user);
746 response.setStatus(fieldsValidator.httpStatusCode.intValue());
748 } catch (Exception e) {
749 logger.error(EELFLoggerDelegate.errorLogger, "postOnboardingApp failed", e);
752 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "POST result =",
753 response.getStatus());
754 return fieldsValidator;
758 * REST endpoint to process a request to delete an on-boarded application.
761 * HTTP servlet request
763 * HTTP servlet response
765 * ID of app to delete
766 * @return FieldsValidator
768 @RequestMapping(value = { "/portalApi/onboardingApps/{appId}" }, method = {
769 RequestMethod.DELETE }, produces = "application/json")
770 public FieldsValidator deleteOnboardingApp(HttpServletRequest request, @PathVariable("appId") Long appId,
771 HttpServletResponse response) {
772 FieldsValidator fieldsValidator = null;
774 EPUser user = EPUserUtils.getUserSession(request);
775 if (!adminRolesService.isSuperAdmin(user)) {
776 EcompPortalUtils.setBadPermissions(user, response, "deleteOnboardingApps");
778 fieldsValidator = appService.deleteOnboardingApp(user, appId);
779 response.setStatus(fieldsValidator.httpStatusCode.intValue());
781 } catch (Exception e) {
782 logger.error(EELFLoggerDelegate.errorLogger, "deleteOnboardingApp failed", e);
783 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
786 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps" + appId, "DELETE result =",
787 response.getStatus());
788 return fieldsValidator;
792 * Gets the application thumbnail image; sets status 404 if none exists.
795 * HTTP servlet request
797 * HTTP servlet response
800 * @return Bytes with the app thumbnail image; null if not available.
802 @RequestMapping(value = { "/portalApi/appThumbnail/{appId}" }, method = { RequestMethod.GET })
803 public HttpEntity<byte[]> getAppThumbnail(HttpServletRequest request, @PathVariable("appId") Long appId,
804 HttpServletResponse response) {
805 EPApp app = appService.getApp(appId);
806 if (app == null || app.getImageUrl() == null || app.getThumbnail() == null || app.getThumbnail().length == 0) {
807 logger.debug(EELFLoggerDelegate.debugLogger,
808 "getAppThumbnail: no app and/or no thumbnail for app " + appId);
809 response.setStatus(HttpServletResponse.SC_NOT_FOUND);
812 String url = app.getImageUrl();
813 int indexOfDot = url.lastIndexOf('.');
814 String urlSuffix = indexOfDot > 0 ? url.substring(indexOfDot + 1).toLowerCase() : "UNK";
815 // Default to JPG if no usable suffix.
816 MediaType mediaType = MediaType.IMAGE_JPEG;
817 if ("png".equals(urlSuffix))
818 mediaType = MediaType.IMAGE_PNG;
819 else if ("gif".equals(urlSuffix))
820 mediaType = MediaType.IMAGE_GIF;
821 HttpHeaders header = new HttpHeaders();
822 header.setContentType(mediaType);
823 header.setContentLength(app.getThumbnail().length);
824 return new HttpEntity<byte[]>(app.getThumbnail(), header);