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============================================
36 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
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;
84 @EnableAspectJAutoProxy
86 public class AppsController extends EPRestrictedBaseController {
87 private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsController.class);
90 private AdminRolesService adminRolesService;
93 private EPAppService appService;
96 private EPLeftMenuService leftMenuService;
99 * RESTful service method to fetch all Applications available to current
105 * HttpServletResponse
106 * @return List<EcompApp>
108 @RequestMapping(value = { "/portalApi/userApps" }, method = RequestMethod.GET, produces = "application/json")
109 public List<EcompApp> getUserApps(HttpServletRequest request, HttpServletResponse response) {
110 EPUser user = EPUserUtils.getUserSession(request);
111 List<EcompApp> ecompApps = null;
115 EcompPortalUtils.setBadPermissions(user, response, "getUserApps");
117 ecompApps = appService.transformAppsToEcompApps(appService.getUserApps(user));
118 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApps", "GET result =", ecompApps);
120 } catch (Exception e) {
121 logger.error(EELFLoggerDelegate.errorLogger, "getUserApps failed", e);
128 * RESTful service method to fetch all applications accessible to the
129 * current user, with personalizations.
134 * HttpServletResponse
135 * @return List<EcompApp>
136 * @throws IOException
139 @RequestMapping(value = { "/portalApi/persUserApps" }, method = RequestMethod.GET, produces = "application/json")
140 public List<EcompApp> getPersUserApps(HttpServletRequest request, HttpServletResponse response) throws IOException {
141 EPUser user = EPUserUtils.getUserSession(request);
142 List<EcompApp> ecompApps = null;
145 EcompPortalUtils.setBadPermissions(user, response, "getPersUserApps");
147 List<EPApp> apps = null;
148 if (adminRolesService.isSuperAdmin(user))
149 apps = appService.getPersAdminApps(user);
151 apps = appService.getPersUserApps(user);
152 ecompApps = appService.transformAppsToEcompApps(apps);
153 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userPersApps", "GET result =", ecompApps);
155 } catch (Exception e) {
156 logger.error(EELFLoggerDelegate.errorLogger, "getPersUserApps failed", e);
157 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
163 * RESTful service method to fetch applications for which the current user
164 * is an Administrator
169 * HttpServletResponse
170 * @return List<AppIdAndNameTransportModel>
172 @RequestMapping(value = { "/portalApi/adminApps" }, method = RequestMethod.GET, produces = "application/json")
173 public List<AppIdAndNameTransportModel> getAdminApps(HttpServletRequest request, HttpServletResponse response) {
174 EPUser user = EPUserUtils.getUserSession(request);
175 List<AppIdAndNameTransportModel> adminApps = null;
178 if (!adminRolesService.isAccountAdmin(user)) {
179 EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
181 adminApps = appService.getAdminApps(user);
182 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminApps", "GET result =", adminApps);
184 } catch (Exception e) {
185 logger.error(EELFLoggerDelegate.errorLogger, "getAdminApps failed", e);
192 * RESTful service method to fetch Applications for user who is super admin
198 * HttpServletResponse
199 * @return List<AppIdAndNameTransportModel>
201 @RequestMapping(value = {
202 "/portalApi/appsForSuperAdminAndAccountAdmin" }, method = RequestMethod.GET, produces = "application/json")
203 public List<AppIdAndNameTransportModel> getAppsForSuperAdminAndAccountAdmin(HttpServletRequest request,
204 HttpServletResponse response) {
205 EPUser user = EPUserUtils.getUserSession(request);
206 List<AppIdAndNameTransportModel> adminApps = null;
209 if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) {
210 EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
212 adminApps = appService.getAppsForSuperAdminAndAccountAdmin(user);
213 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsForSuperAdminAndAccountAdmin",
214 "GET result =", adminApps);
216 } catch (Exception e) {
217 logger.error(EELFLoggerDelegate.errorLogger, "getAppsForSuperAdminAndAccountAdmin failed", e);
224 * RESTful service method to fetch left menu items from the user's session.
229 * HttpServletResponse
230 * @return JSON with left menu
232 @SuppressWarnings({ "rawtypes", "unchecked" })
233 @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json")
234 public String getLeftMenuItems(HttpServletRequest request, HttpServletResponse response) {
235 String menuList = null;
236 Set menuSet = (Set) AppUtils.getSession(request)
237 .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME));
239 Set roleFunctionSet = (Set) AppUtils.getSession(request)
240 .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME));
242 EPUser user = EPUserUtils.getUserSession(request);
245 menuList = leftMenuService.getLeftMenuItems(user, menuSet, roleFunctionSet);
246 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/leftmenuItems", "GET result =", menuList);
247 } catch (Exception e) {
248 logger.error(EELFLoggerDelegate.errorLogger, "getLeftMenuItems failed", e);
253 @RequestMapping(value = {
254 "/portalApi/userAppsOrderBySortPref" }, method = RequestMethod.GET, produces = "application/json")
255 public List<EcompApp> getUserAppsOrderBySortPref(HttpServletRequest request, HttpServletResponse response) {
256 EPUser user = EPUserUtils.getUserSession(request);
257 List<EcompApp> ecompApps = null;
260 EcompPortalUtils.setBadPermissions(user, response, "getUserAppsOrderBySortPref");
262 String usrSortPref = request.getParameter("mparams");
263 if (usrSortPref.equals("")) {
266 switch (usrSortPref) {
268 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByName(user));
269 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
273 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByLastUsed(user));
274 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
278 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByMostUsed(user));
279 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
283 ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByManual(user));
284 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =",
288 logger.error(EELFLoggerDelegate.errorLogger,
289 "getUserAppsOrderBySortPref failed: no match for " + usrSortPref);
292 } catch (Exception e) {
293 logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsOrderBySortPref failed", e);
299 * Sets the user apps manual sort preference
302 * HTTP servlet request
304 * HTTP servlet response
305 * @param epAppsManualPref
307 * @return FieldsValidator
309 @RequestMapping(value = {
310 "/portalApi/saveUserAppsSortingManual" }, method = RequestMethod.PUT, produces = "application/json")
311 public FieldsValidator putUserAppsSortingManual(HttpServletRequest request,
312 @RequestBody List<EPAppsManualPreference> epAppsManualPref, HttpServletResponse response) {
313 FieldsValidator fieldsValidator = null;
315 EPUser user = EPUserUtils.getUserSession(request);
316 fieldsValidator = appService.saveAppsSortManual(epAppsManualPref, user);
317 response.setStatus(fieldsValidator.httpStatusCode.intValue());
318 } catch (Exception e) {
319 logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingManual failed", e);
321 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppsSortingManual", "PUT result =",
322 response.getStatus());
323 return fieldsValidator;
326 @RequestMapping(value = {
327 "/portalApi/saveUserWidgetsSortManual" }, method = RequestMethod.PUT, produces = "application/json")
328 public FieldsValidator putUserWidgetsSortManual(HttpServletRequest request,
329 @RequestBody List<EPWidgetsSortPreference> saveManualWidgetSData, HttpServletResponse response) {
330 FieldsValidator fieldsValidator = null;
332 EPUser user = EPUserUtils.getUserSession(request);
333 fieldsValidator = appService.saveWidgetsSortManual(saveManualWidgetSData, user);
334 response.setStatus(fieldsValidator.httpStatusCode.intValue());
335 } catch (Exception e) {
336 logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortManual failed", e);
338 // return fieldsValidator;
339 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortManual", "PUT result =",
340 response.getStatus());
341 return fieldsValidator;
344 @RequestMapping(value = {
345 "/portalApi/updateWidgetsSortPref" }, method = RequestMethod.PUT, produces = "application/json")
346 public FieldsValidator putUserWidgetsSortPref(HttpServletRequest request,
347 @RequestBody List<EPWidgetsSortPreference> delManualWidgetData, HttpServletResponse response) {
348 FieldsValidator fieldsValidator = null;
350 EPUser user = EPUserUtils.getUserSession(request);
351 fieldsValidator = appService.deleteUserWidgetSortPref(delManualWidgetData, user);
352 response.setStatus(fieldsValidator.httpStatusCode.intValue());
353 } catch (Exception e) {
354 logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e);
357 // return fieldsValidator;
358 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortPref", "PUT result =",
359 response.getStatus());
360 return fieldsValidator;
364 * Deletes the user app manual sort preference record
367 * HTTP servlet request
369 * HTTP servlet response
370 * @param delManualAppData
372 * @return FieldsValidator
374 @RequestMapping(value = {
375 "/portalApi/UpdateUserAppsSortManual" }, method = RequestMethod.PUT, produces = "application/json")
376 public FieldsValidator deleteUserAppSortManual(HttpServletRequest request,
377 @RequestBody EPDeleteAppsManualSortPref delManualAppData, HttpServletResponse response) {
378 FieldsValidator fieldsValidator = null;
380 EPUser user = EPUserUtils.getUserSession(request);
381 fieldsValidator = appService.deleteUserAppSortManual(delManualAppData, user);
382 response.setStatus(fieldsValidator.httpStatusCode.intValue());
383 } catch (Exception e) {
384 logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e);
387 // return fieldsValidator;
388 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/deleteUserAppSortManual", "PUT result =",
389 response.getStatus());
390 return fieldsValidator;
393 @RequestMapping(value = {
394 "/portalApi/saveUserAppsSortingPreference" }, method = RequestMethod.PUT, produces = "application/json")
395 public FieldsValidator putUserAppsSortingPreference(HttpServletRequest request,
396 @RequestBody EPAppsSortPreference userAppsValue, HttpServletResponse response) {
397 FieldsValidator fieldsValidator = null;
399 EPUser user = EPUserUtils.getUserSession(request);
400 fieldsValidator = appService.saveAppsSortPreference(userAppsValue, user);
401 response.setStatus(fieldsValidator.httpStatusCode.intValue());
402 } catch (Exception e) {
403 logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingPreference failed", e);
407 // return fieldsValidator;
408 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserAppsSortingPreference", "PUT result =",
409 response.getStatus());
410 return fieldsValidator;
413 @RequestMapping(value = {
414 "/portalApi/userAppsSortTypePreference" }, method = RequestMethod.GET, produces = "application/String")
415 public String getUserAppsSortTypePreference(HttpServletRequest request, HttpServletResponse response) {
416 EPUser user = EPUserUtils.getUserSession(request);
417 String userSortPreference = null;
421 EcompPortalUtils.setBadPermissions(user, response, "userAppsSortTypePreference");
423 userSortPreference = appService.getUserAppsSortTypePreference(user);
424 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsSortTypePreference", "GET result =",
427 } catch (Exception e) {
428 logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e);
431 return userSortPreference;
435 * RESTful service method to fetch Application Administrators to Super
436 * Administrator user. Attention: Users which have Super Administrator roles
437 * only are not included!
440 * HTTP servlet request
442 * HTTP servlet response
443 * @return List<AdminUserApplications>
445 @RequestMapping(value = { "/portalApi/accountAdmins" }, method = RequestMethod.GET, produces = "application/json")
446 public List<AdminUserApplications> getAppsAdministrators(HttpServletRequest request, HttpServletResponse response) {
447 EPUser user = EPUserUtils.getUserSession(request);
448 List<AdminUserApplications> admins = null;
450 if (!adminRolesService.isSuperAdmin(user)) {
451 EcompPortalUtils.setBadPermissions(user, response, "getAppsAdministrators");
453 admins = appService.getAppsAdmins();
454 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/accountAdmins", "GET result =", admins);
456 } catch (Exception e) {
457 logger.error(EELFLoggerDelegate.errorLogger, "getAppsAdministrators failed", e);
463 @RequestMapping(value = { "/portalApi/availableApps" }, method = RequestMethod.GET, produces = "application/json")
464 public List<AppsResponse> getApps(HttpServletRequest request, HttpServletResponse response) {
465 EPUser user = EPUserUtils.getUserSession(request);
466 List<AppsResponse> apps = null;
468 if (!adminRolesService.isSuperAdmin(user)) {
469 EcompPortalUtils.setBadPermissions(user, response, "getApps");
471 apps = appService.getAllApps(false);
472 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps);
474 } catch (Exception e) {
475 logger.error(EELFLoggerDelegate.errorLogger, "getApps failed", e);
482 * Gets all apps, both active and inactive; i.e., all on-boarded apps,
483 * regardless of enabled status.
486 * HTTP servlet request
488 * HTTP servlet response
489 * @return List of applications
491 @RequestMapping(value = {
492 "/portalApi/allAvailableApps" }, method = RequestMethod.GET, produces = "application/json")
493 public List<AppsResponse> getAllApps(HttpServletRequest request, HttpServletResponse response) {
494 EPUser user = EPUserUtils.getUserSession(request);
495 List<AppsResponse> apps = null;
497 if (!adminRolesService.isSuperAdmin(user)) {
498 EcompPortalUtils.setBadPermissions(user, response, "getApps");
500 apps = appService.getAllApps(true);
501 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps);
503 } catch (Exception e) {
504 logger.error(EELFLoggerDelegate.errorLogger, "getAllApps failed", e);
513 * HTTP servlet request
515 * HTTP servlet response
516 * @return List of applications
518 @RequestMapping(value = { "/portalApi/appsFullList" }, method = RequestMethod.GET, produces = "application/json")
519 public List<EcompApp> getAppsFullList(HttpServletRequest request, HttpServletResponse response) {
520 EPUser user = EPUserUtils.getUserSession(request);
521 List<EcompApp> ecompApps = null;
523 EcompPortalUtils.setBadPermissions(user, response, "getAppsFullList");
525 ecompApps = appService.getEcompAppAppsFullList();
526 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsFullList", "GET result =", ecompApps);
534 * HTTP servlet request
536 * HTTP servlet response
539 @RequestMapping(value = { "/portalApi/userProfile" }, method = RequestMethod.GET, produces = "application/json")
540 public UserRoles getUserProfile(HttpServletRequest request, HttpServletResponse response) {
541 EPUser user = EPUserUtils.getUserSession(request);
542 UserRoles userAndRoles = null;
545 EcompPortalUtils.setBadPermissions(user, response, "getUserProfile");
547 userAndRoles = appService.getUserProfileNormalized(user);
549 } catch (Exception e) {
550 logger.error(EELFLoggerDelegate.errorLogger, "getUserProfile failed", e);
553 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userProfile", "getUserProfile result =",
561 * HTTP servlet request
564 * @return List<LocalRole>
566 @RequestMapping(value = { "/portalApi/appRoles/{appId}" }, method = {
567 RequestMethod.GET }, produces = "application/json")
568 public List<LocalRole> getAppRoles(HttpServletRequest request, @PathVariable("appId") Long appId,
569 HttpServletResponse response) {
570 List<LocalRole> roleList = null;
571 EPUser user = EPUserUtils.getUserSession(request);
572 EPApp requestedApp = appService.getApp(appId);
573 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, requestedApp)
574 || (adminRolesService.isSuperAdmin(user) && requestedApp.getId() == PortalConstants.PORTAL_APP_ID))) {
576 roleList = appService.getAppRoles(appId);
577 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appRoles/" + appId, "GET result =",
579 } catch (Exception e) {
580 logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles failed", e);
583 EcompPortalUtils.setBadPermissions(user, response, "getAppRoles");
590 * Return single app information with appName as parameter
594 * @return EPApp object
596 @RequestMapping(value = { "/portalApi/singleAppInfo" }, method = {
597 RequestMethod.GET }, produces = "application/json")
598 public EPApp getSingleAppInfo(HttpServletRequest request, HttpServletResponse response) {
600 EPUser user = EPUserUtils.getUserSession(request);
602 String appName = request.getParameter("appParam");
603 app = appService.getAppDetailByAppName(appName);
604 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app)
605 || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID)))
606 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfo" + appName, "GET result =", app);
609 EcompPortalUtils.setBadPermissions(user, response, "createAdmin");
612 } catch (Exception e) {
613 logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e);
620 * Return single app information with appId as parameter
624 * @return EPApp object
626 @RequestMapping(value = { "/portalApi/singleAppInfoById" }, method = {
627 RequestMethod.GET }, produces = "application/json")
628 public EPApp getSingleAppInfoById(HttpServletRequest request, HttpServletResponse response) {
630 EPUser user = EPUserUtils.getUserSession(request);
632 String appId = request.getParameter("appParam");
633 app = appService.getApp(Long.valueOf(appId));
634 if(!EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) {
635 app.setCentralAuth(false);
637 if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app)
638 || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID)))
639 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfoById" + appId, "GET result =", app);
642 EcompPortalUtils.setBadPermissions(user, response, "createAdmin");
645 } catch (Exception e) {
646 logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e);
654 * HTTP servlet request
656 * HTTP servlet response
657 * @return List<OnboardingApp>
659 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.GET, produces = "application/json")
660 public List<OnboardingApp> getOnboardingApps(HttpServletRequest request, HttpServletResponse response) {
661 EPUser user = EPUserUtils.getUserSession(request);
662 List<OnboardingApp> onboardingApps = null;
664 if (!adminRolesService.isSuperAdmin(user)) {
665 EcompPortalUtils.setBadPermissions(user, response, "getOnboardingApps");
667 onboardingApps = appService.getOnboardingApps();
668 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "GET result =",
669 "onboardingApps of size " + onboardingApps.size());
671 } catch (Exception e) {
672 logger.error(EELFLoggerDelegate.errorLogger, "getOnboardingApps failed", e);
675 return onboardingApps;
681 * HTTP servlet request
683 * HTTP servlet response
684 * @param modifiedOnboardingApp
686 * @return FieldsValidator
688 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.PUT, produces = "application/json")
689 public FieldsValidator putOnboardingApp(HttpServletRequest request,
690 @RequestBody OnboardingApp modifiedOnboardingApp, HttpServletResponse response) {
691 FieldsValidator fieldsValidator = null;
693 EPUser user = EPUserUtils.getUserSession(request);
694 if (!adminRolesService.isSuperAdmin(user)) {
695 EcompPortalUtils.setBadPermissions(user, response, "putOnboardingApp");
697 modifiedOnboardingApp.normalize();
698 fieldsValidator = appService.modifyOnboardingApp(modifiedOnboardingApp, user);
699 response.setStatus(fieldsValidator.httpStatusCode.intValue());
701 } catch (Exception e) {
702 logger.error(EELFLoggerDelegate.errorLogger, "putOnboardingApps failed", e);
705 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "PUT result =",
706 response.getStatus());
707 return fieldsValidator;
713 * HTTP servlet request
715 * HTTP servlet response
716 * @param newOnboardingApp
718 * @return FieldsValidator
720 @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.POST, produces = "application/json")
721 public FieldsValidator postOnboardingApp(HttpServletRequest request, @RequestBody OnboardingApp newOnboardingApp,
722 HttpServletResponse response) {
723 FieldsValidator fieldsValidator = null;
725 EPUser user = EPUserUtils.getUserSession(request);
726 if (!adminRolesService.isSuperAdmin(user)) {
727 EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps");
729 newOnboardingApp.normalize();
730 fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user);
731 response.setStatus(fieldsValidator.httpStatusCode.intValue());
733 } catch (Exception e) {
734 logger.error(EELFLoggerDelegate.errorLogger, "postOnboardingApp failed", e);
737 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "POST result =",
738 response.getStatus());
739 return fieldsValidator;
743 * REST endpoint to process a request to delete an on-boarded application.
746 * HTTP servlet request
748 * HTTP servlet response
750 * ID of app to delete
751 * @return FieldsValidator
753 @RequestMapping(value = { "/portalApi/onboardingApps/{appId}" }, method = {
754 RequestMethod.DELETE }, produces = "application/json")
755 public FieldsValidator deleteOnboardingApp(HttpServletRequest request, @PathVariable("appId") Long appId,
756 HttpServletResponse response) {
757 FieldsValidator fieldsValidator = null;
759 EPUser user = EPUserUtils.getUserSession(request);
760 if (!adminRolesService.isSuperAdmin(user)) {
761 EcompPortalUtils.setBadPermissions(user, response, "deleteOnboardingApps");
763 fieldsValidator = appService.deleteOnboardingApp(user, appId);
764 response.setStatus(fieldsValidator.httpStatusCode.intValue());
766 } catch (Exception e) {
767 logger.error(EELFLoggerDelegate.errorLogger, "deleteOnboardingApp failed", e);
768 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
771 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps" + appId, "DELETE result =",
772 response.getStatus());
773 return fieldsValidator;
777 * Gets the application thumbnail image; sets status 404 if none exists.
780 * HTTP servlet request
782 * HTTP servlet response
785 * @return Bytes with the app thumbnail image; null if not available.
787 @RequestMapping(value = { "/portalApi/appThumbnail/{appId}" }, method = { RequestMethod.GET })
788 public HttpEntity<byte[]> getAppThumbnail(HttpServletRequest request, @PathVariable("appId") Long appId,
789 HttpServletResponse response) {
790 EPApp app = appService.getApp(appId);
791 if (app == null || app.getImageUrl() == null || app.getThumbnail() == null || app.getThumbnail().length == 0) {
792 logger.debug(EELFLoggerDelegate.debugLogger,
793 "getAppThumbnail: no app and/or no thumbnail for app " + appId);
794 response.setStatus(HttpServletResponse.SC_NOT_FOUND);
797 String url = app.getImageUrl();
798 int indexOfDot = url.lastIndexOf('.');
799 String urlSuffix = indexOfDot > 0 ? url.substring(indexOfDot + 1).toLowerCase() : "UNK";
800 // Default to JPG if no usable suffix.
801 MediaType mediaType = MediaType.IMAGE_JPEG;
802 if ("png".equals(urlSuffix))
803 mediaType = MediaType.IMAGE_PNG;
804 else if ("gif".equals(urlSuffix))
805 mediaType = MediaType.IMAGE_GIF;
806 HttpHeaders header = new HttpHeaders();
807 header.setContentType(mediaType);
808 header.setContentLength(app.getThumbnail().length);
809 return new HttpEntity<byte[]>(app.getThumbnail(), header);