/* * Copyright 2014-2016 CyberVision, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kaaproject.kaa.server.admin.controller; import io.swagger.annotations.Api; import org.kaaproject.kaa.server.admin.services.dao.UserFacade; import org.kaaproject.kaa.server.admin.services.util.Utils; import org.kaaproject.kaa.server.admin.shared.services.AdminUiService; import org.kaaproject.kaa.server.admin.shared.services.ApplicationService; import org.kaaproject.kaa.server.admin.shared.services.ConfigurationService; import org.kaaproject.kaa.server.admin.shared.services.CtlService; import org.kaaproject.kaa.server.admin.shared.services.DeviceManagementService; import org.kaaproject.kaa.server.admin.shared.services.EventService; import org.kaaproject.kaa.server.admin.shared.services.GroupService; import org.kaaproject.kaa.server.admin.shared.services.KaaAdminServiceException; import org.kaaproject.kaa.server.admin.shared.services.KaaAuthService; import org.kaaproject.kaa.server.admin.shared.services.LoggingService; import org.kaaproject.kaa.server.admin.shared.services.NotificationService; import org.kaaproject.kaa.server.admin.shared.services.ProfileService; import org.kaaproject.kaa.server.admin.shared.services.SdkService; import org.kaaproject.kaa.server.admin.shared.services.ServiceErrorCode; import org.kaaproject.kaa.server.admin.shared.services.TenantService; import org.kaaproject.kaa.server.admin.shared.services.UserService; import org.kaaproject.kaa.server.admin.shared.services.VerifierService; import org.kaaproject.kaa.server.control.service.ControlService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; /** * The Class AbstractAdminController. */ @Api(value = "Admin REST API", description = "Provides function for manage Kaa cluster", basePath = "/kaaAdmin/rest") @Controller @RequestMapping("api") public abstract class AbstractAdminController { private static final Logger LOG = LoggerFactory.getLogger(AbstractAdminController.class); /** * The kaa admin UI service. */ @Autowired AdminUiService adminUiService; /** * The kaa application service. */ @Autowired ApplicationService applicationService; /** * The kaa configuration service. */ @Autowired ConfigurationService configurationService; /** * The kaa CTL service. */ @Autowired CtlService ctlService; /** * The kaa device management service. */ @Autowired DeviceManagementService deviceManagementService; /** * The kaa event service. */ @Autowired EventService eventService; /** * The kaa group service. */ @Autowired GroupService groupService; /** * The kaa logging service. */ @Autowired LoggingService loggingService; /** * The kaa notification service. */ @Autowired NotificationService notificationService; /** * The kaa profile service. */ @Autowired ProfileService profileService; /** * The kaa sdk service. */ @Autowired SdkService sdkService; /** * The kaa tenant service. */ @Autowired TenantService tenantService; /** * The kaa user service. */ @Autowired UserService userService; /** * The kaa verifier service. */ @Autowired VerifierService verifierService; /** * The kaa auth service. */ @Autowired KaaAuthService kaaAuthService; /** * The user facade. */ @Autowired UserFacade userFacade; /** * The control service. */ @Autowired ControlService controlService; /** * The password encoder. */ @Autowired @Qualifier("encoder") PasswordEncoder passwordEncoder; /** * Gets the file content. * * @param file the file * @return the file content * @throws KaaAdminServiceException the kaa admin service exception */ protected byte[] getFileContent(MultipartFile file) throws KaaAdminServiceException { if (!file.isEmpty()) { LOG.debug("Uploading file with name '{}'", file.getOriginalFilename()); try { return file.getBytes(); } catch (IOException ex) { throw Utils.handleException(ex); } } else { LOG.error("No file found in post request!"); throw new KaaAdminServiceException( "No file found in post request!", ServiceErrorCode.FILE_NOT_FOUND); } } }