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.service.fn.FnLanguageService;
-import org.onap.portal.service.fn.FnUserService;
+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.language.FnLanguageService;
+import org.onap.portal.service.user.FnUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
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(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")
- public PortalRestResponse<String> saveLanguage(final Principal principal, final FnLanguage fnLanguage){
+ @PostMapping(value = "/language", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+ 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.setResponse(languageService.save(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);