30 |
30 |
31 |
31 |
32 import de.uapcore.lightpit.*; |
32 import de.uapcore.lightpit.*; |
33 import de.uapcore.lightpit.dao.DataAccessObjects; |
33 import de.uapcore.lightpit.dao.DataAccessObjects; |
34 import de.uapcore.lightpit.entities.User; |
34 import de.uapcore.lightpit.entities.User; |
|
35 import de.uapcore.lightpit.viewmodel.UsersEditView; |
|
36 import de.uapcore.lightpit.viewmodel.UsersView; |
35 import org.slf4j.Logger; |
37 import org.slf4j.Logger; |
36 import org.slf4j.LoggerFactory; |
38 import org.slf4j.LoggerFactory; |
37 |
39 |
38 import javax.servlet.annotation.WebServlet; |
40 import javax.servlet.annotation.WebServlet; |
39 import javax.servlet.http.HttpServletRequest; |
41 import javax.servlet.http.HttpServletRequest; |
55 |
57 |
56 @RequestMapping(method = HttpMethod.GET) |
58 @RequestMapping(method = HttpMethod.GET) |
57 public ResponseType index(HttpServletRequest req, DataAccessObjects dao) throws SQLException { |
59 public ResponseType index(HttpServletRequest req, DataAccessObjects dao) throws SQLException { |
58 final var userDao = dao.getUserDao(); |
60 final var userDao = dao.getUserDao(); |
59 |
61 |
60 req.setAttribute("users", userDao.list()); |
62 final var viewModel = new UsersView(); |
|
63 viewModel.setUsers(userDao.list()); |
|
64 setViewModel(req, viewModel); |
61 setContentPage(req, "users"); |
65 setContentPage(req, "users"); |
62 |
66 |
63 return ResponseType.HTML; |
67 return ResponseType.HTML; |
64 } |
68 } |
65 |
69 |
66 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
70 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
67 public ResponseType edit(HttpServletRequest req, DataAccessObjects dao) throws SQLException { |
71 public ResponseType edit(HttpServletRequest req, DataAccessObjects dao) throws SQLException { |
68 |
72 |
69 req.setAttribute("user", findByParameter(req, Integer.class, "id", |
73 final var viewModel = new UsersEditView(); |
|
74 viewModel.setUser(findByParameter(req, Integer.class, "id", |
70 dao.getUserDao()::find).orElse(new User(-1))); |
75 dao.getUserDao()::find).orElse(new User(-1))); |
71 |
76 |
|
77 setViewModel(req, viewModel); |
72 setContentPage(req, "user-form"); |
78 setContentPage(req, "user-form"); |
73 |
79 |
74 return ResponseType.HTML; |
80 return ResponseType.HTML; |
75 } |
81 } |
76 |
82 |
90 setRedirectLocation(req, "./teams/"); |
96 setRedirectLocation(req, "./teams/"); |
91 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
97 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
92 |
98 |
93 LOG.debug("Successfully updated user {}", user.getUsername()); |
99 LOG.debug("Successfully updated user {}", user.getUsername()); |
94 } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) { |
100 } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) { |
95 // TODO: set request attribute with error text |
101 final var viewModel = new UsersEditView(); |
96 req.setAttribute("user", user); |
102 viewModel.setUser(user); |
|
103 // TODO: viewModel.setErrorText() |
|
104 setViewModel(req, viewModel); |
97 setContentPage(req, "user-form"); |
105 setContentPage(req, "user-form"); |
98 LOG.warn("Form validation failure: {}", ex.getMessage()); |
106 LOG.warn("Form validation failure: {}", ex.getMessage()); |
99 LOG.debug("Details:", ex); |
107 LOG.debug("Details:", ex); |
100 } |
108 } |
101 |
109 |