30 |
30 |
31 import de.uapcore.lightpit.AbstractLightPITServlet; |
31 import de.uapcore.lightpit.AbstractLightPITServlet; |
32 import de.uapcore.lightpit.Constants; |
32 import de.uapcore.lightpit.Constants; |
33 import de.uapcore.lightpit.HttpMethod; |
33 import de.uapcore.lightpit.HttpMethod; |
34 import de.uapcore.lightpit.RequestMapping; |
34 import de.uapcore.lightpit.RequestMapping; |
35 import de.uapcore.lightpit.dao.DataAccessObjects; |
35 import de.uapcore.lightpit.dao.DaoProvider; |
36 import de.uapcore.lightpit.entities.User; |
36 import de.uapcore.lightpit.entities.User; |
37 import de.uapcore.lightpit.viewmodel.UsersEditView; |
37 import de.uapcore.lightpit.viewmodel.UsersEditView; |
38 import de.uapcore.lightpit.viewmodel.UsersView; |
38 import de.uapcore.lightpit.viewmodel.UsersView; |
39 import org.slf4j.Logger; |
39 import org.slf4j.Logger; |
40 import org.slf4j.LoggerFactory; |
40 import org.slf4j.LoggerFactory; |
59 protected String getResourceBundleName() { |
59 protected String getResourceBundleName() { |
60 return "localization.users"; |
60 return "localization.users"; |
61 } |
61 } |
62 |
62 |
63 @RequestMapping(method = HttpMethod.GET) |
63 @RequestMapping(method = HttpMethod.GET) |
64 public void index(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) throws SQLException, ServletException, IOException { |
64 public void index(HttpServletRequest req, HttpServletResponse resp, DaoProvider dao) throws SQLException, ServletException, IOException { |
65 final var userDao = dao.getUserDao(); |
65 final var userDao = dao.getUserDao(); |
66 |
66 |
67 final var viewModel = new UsersView(); |
67 final var viewModel = new UsersView(); |
68 viewModel.setUsers(userDao.list()); |
68 viewModel.setUsers(userDao.list()); |
69 setViewModel(req, viewModel); |
69 setViewModel(req, viewModel); |
71 |
71 |
72 renderSite(req, resp); |
72 renderSite(req, resp); |
73 } |
73 } |
74 |
74 |
75 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
75 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
76 public void edit(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) throws SQLException, ServletException, IOException { |
76 public void edit(HttpServletRequest req, HttpServletResponse resp, DaoProvider dao) throws SQLException, ServletException, IOException { |
77 |
77 |
78 final var viewModel = new UsersEditView(); |
78 final var viewModel = new UsersEditView(); |
79 viewModel.setUser(findByParameter(req, Integer.class, "id", |
79 viewModel.setUser(findByParameter(req, Integer.class, "id", |
80 dao.getUserDao()::find).orElse(new User(-1))); |
80 dao.getUserDao()::find).orElse(new User(-1))); |
81 |
81 |
84 |
84 |
85 renderSite(req, resp); |
85 renderSite(req, resp); |
86 } |
86 } |
87 |
87 |
88 @RequestMapping(requestPath = "commit", method = HttpMethod.POST) |
88 @RequestMapping(requestPath = "commit", method = HttpMethod.POST) |
89 public void commit(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) throws ServletException, IOException { |
89 public void commit(HttpServletRequest req, HttpServletResponse resp, DaoProvider dao) throws ServletException, IOException { |
90 |
90 |
91 User user = new User(-1); |
91 User user = new User(-1); |
92 try { |
92 try { |
93 user = new User(getParameter(req, Integer.class, "userid").orElseThrow()); |
93 user = new User(getParameter(req, Integer.class, "userid").orElseThrow()); |
94 user.setUsername(getParameter(req, String.class, "username").orElseThrow()); |
94 user.setUsername(getParameter(req, String.class, "username").orElseThrow()); |
95 getParameter(req, String.class, "givenname").ifPresent(user::setGivenname); |
95 getParameter(req, String.class, "givenname").ifPresent(user::setGivenname); |
96 getParameter(req, String.class, "lastname").ifPresent(user::setLastname); |
96 getParameter(req, String.class, "lastname").ifPresent(user::setLastname); |
97 getParameter(req, String.class, "mail").ifPresent(user::setMail); |
97 getParameter(req, String.class, "mail").ifPresent(user::setMail); |
98 |
98 |
99 dao.getUserDao().saveOrUpdate(user); |
99 final var userDao = dao.getUserDao(); |
|
100 if (user.getId() > 0) { |
|
101 // TODO: unused return value |
|
102 userDao.update(user); |
|
103 } else { |
|
104 userDao.save(user); |
|
105 } |
100 |
106 |
101 setRedirectLocation(req, "./teams/"); |
107 setRedirectLocation(req, "./teams/"); |
102 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
108 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
103 |
109 |
104 LOG.debug("Successfully updated user {}", user.getUsername()); |
110 LOG.debug("Successfully updated user {}", user.getUsername()); |
105 } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) { |
111 } catch (NoSuchElementException | IllegalArgumentException ex) { |
106 final var viewModel = new UsersEditView(); |
112 final var viewModel = new UsersEditView(); |
107 viewModel.setUser(user); |
113 viewModel.setUser(user); |
108 // TODO: viewModel.setErrorText() |
114 // TODO: viewModel.setErrorText() |
109 setViewModel(req, viewModel); |
115 setViewModel(req, viewModel); |
110 setContentPage(req, "user-form"); |
116 setContentPage(req, "user-form"); |