package ru.ulstu.user.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import ru.ulstu.configuration.Constants; import ru.ulstu.odin.controller.OdinController; import ru.ulstu.user.model.UserDto; import ru.ulstu.user.model.User; import ru.ulstu.user.model.UserListDto; import ru.ulstu.user.service.UserService; import ru.ulstu.user.service.UserSessionService; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @Controller @RequestMapping(value = "/users") public class UserMvcController extends OdinController { private final Logger log = LoggerFactory.getLogger(UserMvcController.class); private final UserService userService; private final UserSessionService userSessionService; public UserMvcController(UserService userService, UserSessionService userSessionService) { super(UserListDto.class, UserDto.class); this.userService = userService; this.userSessionService = userSessionService; } @GetMapping("/profile") public void getUserProfile(ModelMap modelMap, HttpServletRequest request) { HttpSession session = request.getSession(false); final String sessionId = session.getAttribute(Constants.SESSION_ID_ATTR).toString(); modelMap.addAttribute("userDto", new UserDto(userSessionService.getUserBySessionId(sessionId))); } @PostMapping("/profile") public void updateUserProfile(ModelMap modelMap, HttpServletRequest request, UserDto userDto) { HttpSession session = request.getSession(false); final String sessionId = session.getAttribute(Constants.SESSION_ID_ATTR).toString(); User user = userSessionService.getUserBySessionId(sessionId); modelMap.addAttribute("userDto", userService.updateUserInformation(user, userDto)); } }