Add equals & hascode methods
[portal.git] / portal-BE / src / main / java / org / onap / portal / controller / LanguageController.java
index 97fe03d..c545d7f 100644 (file)
@@ -42,13 +42,14 @@ package org.onap.portal.controller;
 
 import java.security.Principal;
 import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.onap.portal.aop.service.FnLanguageServiceAOP;
+import java.util.Optional;
 import org.onap.portal.domain.db.fn.FnLanguage;
 import org.onap.portal.domain.db.fn.FnUser;
 import org.onap.portal.domain.dto.PortalRestResponse;
 import org.onap.portal.domain.dto.PortalRestStatusEnum;
+import org.onap.portal.domain.dto.fn.FnLanguageDto;
+import org.onap.portal.domain.mapper.FnLanguageMapper;
+import org.onap.portal.domain.mapper.FnUserMapper;
 import org.onap.portal.service.fn.FnLanguageService;
 import org.onap.portal.service.fn.FnUserService;
 import org.slf4j.Logger;
@@ -60,57 +61,83 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/auxapi")
 public class LanguageController {
+
        private static final Logger LOGGER = LoggerFactory.getLogger(LanguageController.class);
 
        private final FnLanguageService languageService;
        private final FnUserService fnUserService;
 
+       private final FnUserMapper fnUserMapper;
+       private final FnLanguageMapper fnLanguageMapper;
+
        @Autowired
        public LanguageController(final FnLanguageService languageService,
-               final FnUserService fnUserService) {
+               final FnUserService fnUserService, final FnUserMapper fnUserMapper,
+               final FnLanguageMapper fnLanguageMapper) {
               this.languageService = languageService;
               this.fnUserService = fnUserService;
+              this.fnUserMapper = fnUserMapper;
+              this.fnLanguageMapper = fnLanguageMapper;
        }
 
-       @GetMapping(value = "/language", produces = "application/json;charset=UTF-8")
-       public List<FnLanguage> getLanguageList() {
-              return languageService.getLanguages();
+       @GetMapping(value = "/language", produces = MediaType.APPLICATION_JSON_VALUE)
+       public List<FnLanguageDto> getLanguageList(final Principal principal) {
+              return fnLanguageMapper.fnLanguageListToDtoList(languageService.getLanguages(principal));
        }
 
        @PostMapping(value = "/languageSetting/user/{loginId}")
-       public void setUpUserLanguage(@RequestBody FnLanguage fnLanguage,
-               @PathVariable("loginId") Long loginId) {
-              if (fnUserService.getUser(loginId).isPresent()){
-                     FnUser user = fnUserService.getUser(loginId).get();
-                     user.setLanguage_id(fnLanguage.getLanguageId());
-                     fnUserService.saveFnUser(user);
+       public PortalRestResponse<String> setUpUserLanguage(Principal principal, @RequestBody FnLanguage fnLanguage,
+               @PathVariable("loginId") Long userId) {
+              PortalRestResponse<String> response = new PortalRestResponse<>();
+              LOGGER.info("User " + principal.getName() + " try to setUpUserLanguage fnUser with id " + userId);
+              try {
+                     if (fnUserService.existById(userId)) {
+                            LOGGER.info("User " + principal.getName() + " found fnUser with id " + userId);
+                            @SuppressWarnings("OptionalGetWithoutIsPresent")
+                            FnUser user = fnUserService.getUser(userId).get();
+                            user.setLanguageId(fnLanguage);
+                            fnUserService.saveFnUser(principal, user);
+                            //response.setResponse(fnUserMapper.fnUserToFnUserDto(user).toString());
+                            response.setMessage("SUCCESS");
+                            response.setStatus(PortalRestStatusEnum.OK);
+                     } else {
+                            response.setMessage("FAILURE");
+                            response.setResponse("User for id: " + userId + " do not exist");
+                            response.setStatus(PortalRestStatusEnum.ERROR);
+                     }
+              } catch (Exception e) {
+                     LOGGER.error("Exception in setUpUserLanguage", e);
+                     response.setMessage("FAILURE");
+                     response.setResponse(e.toString());
+                     response.setStatus(PortalRestStatusEnum.ERROR);
+                     return response;
               }
+              return response;
        }
 
-       @GetMapping(value = "/languageSetting/user/{loginId}")
-       public FnLanguage getUserLanguage(HttpServletRequest request, HttpServletResponse response,
-               @PathVariable("loginId") Long loginId) {
-              if (fnUserService.getUser(loginId).isPresent()){
-                     Long languageId = fnUserService.getUser(loginId).get().getLanguage_id();
-                     return languageService.findById(languageId).orElse(new FnLanguage());
+       @GetMapping(value = "/languageSetting/user/{loginId}", produces = MediaType.APPLICATION_JSON_VALUE)
+       public FnLanguageDto getUserLanguage(final Principal principal, @PathVariable("loginId") final Long loginId) {
+              if (fnUserService.existById(loginId)) {
+                     return fnLanguageMapper.fnLanguageToDto(Optional.of(fnUserService.getUser(loginId).get().getLanguageId()).orElse(new FnLanguage()));
               }
-              return new FnLanguage();
+              return new FnLanguageDto();
        }
 
        @PostMapping(value = "/language", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
-       public PortalRestResponse<String> saveLanguage(final Principal principal, @RequestBody final FnLanguage fnLanguage){
+       public PortalRestResponse<String> saveLanguage(final Principal principal,
+               @RequestBody final FnLanguage fnLanguage) {
               PortalRestResponse<String> response = new PortalRestResponse<>();
               try {
                      response.setMessage("SUCCESS");
                      response.setResponse(languageService.save(principal, fnLanguage).toString());
                      response.setStatus(PortalRestStatusEnum.OK);
-              } catch (Exception e){
+              } catch (Exception e) {
+                     LOGGER.error("Exception in saveLanguage", e);
                      response.setMessage("FAILURE");
                      response.setResponse(e.getMessage());
                      response.setStatus(PortalRestStatusEnum.ERROR);