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.DaoProvider; |
35 import de.uapcore.lightpit.dao.DataAccessObject; |
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, DaoProvider dao) throws SQLException, ServletException, IOException { |
64 public void index(HttpServletRequest req, HttpServletResponse resp, DataAccessObject dao) throws SQLException, ServletException, IOException { |
65 final var userDao = dao.getUserDao(); |
|
66 |
|
67 final var viewModel = new UsersView(); |
65 final var viewModel = new UsersView(); |
68 viewModel.setUsers(userDao.list()); |
66 viewModel.setUsers(dao.listUsers()); |
69 setViewModel(req, viewModel); |
67 setViewModel(req, viewModel); |
70 setContentPage(req, "users"); |
68 setContentPage(req, "users"); |
71 |
69 |
72 renderSite(req, resp); |
70 renderSite(req, resp); |
73 } |
71 } |
74 |
72 |
75 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
73 @RequestMapping(requestPath = "edit", method = HttpMethod.GET) |
76 public void edit(HttpServletRequest req, HttpServletResponse resp, DaoProvider dao) throws SQLException, ServletException, IOException { |
74 public void edit(HttpServletRequest req, HttpServletResponse resp, DataAccessObject dao) throws SQLException, ServletException, IOException { |
77 |
75 |
78 final var viewModel = new UsersEditView(); |
76 final var viewModel = new UsersEditView(); |
79 viewModel.setUser(findByParameter(req, Integer.class, "id", |
77 viewModel.setUser(findByParameter(req, Integer.class, "id", dao::findUser).orElse(new User(-1))); |
80 dao.getUserDao()::find).orElse(new User(-1))); |
|
81 |
78 |
82 setViewModel(req, viewModel); |
79 setViewModel(req, viewModel); |
83 setContentPage(req, "user-form"); |
80 setContentPage(req, "user-form"); |
84 |
81 |
85 renderSite(req, resp); |
82 renderSite(req, resp); |
86 } |
83 } |
87 |
84 |
88 @RequestMapping(requestPath = "commit", method = HttpMethod.POST) |
85 @RequestMapping(requestPath = "commit", method = HttpMethod.POST) |
89 public void commit(HttpServletRequest req, HttpServletResponse resp, DaoProvider dao) throws ServletException, IOException { |
86 public void commit(HttpServletRequest req, HttpServletResponse resp, DataAccessObject dao) throws ServletException, IOException { |
90 |
87 |
91 User user = new User(-1); |
88 User user = new User(-1); |
92 try { |
89 try { |
93 user = new User(getParameter(req, Integer.class, "userid").orElseThrow()); |
90 user = new User(getParameter(req, Integer.class, "userid").orElseThrow()); |
94 user.setUsername(getParameter(req, String.class, "username").orElseThrow()); |
91 user.setUsername(getParameter(req, String.class, "username").orElseThrow()); |
95 getParameter(req, String.class, "givenname").ifPresent(user::setGivenname); |
92 getParameter(req, String.class, "givenname").ifPresent(user::setGivenname); |
96 getParameter(req, String.class, "lastname").ifPresent(user::setLastname); |
93 getParameter(req, String.class, "lastname").ifPresent(user::setLastname); |
97 getParameter(req, String.class, "mail").ifPresent(user::setMail); |
94 getParameter(req, String.class, "mail").ifPresent(user::setMail); |
98 |
95 |
99 final var userDao = dao.getUserDao(); |
|
100 if (user.getId() > 0) { |
96 if (user.getId() > 0) { |
101 // TODO: unused return value |
97 dao.updateUser(user); |
102 userDao.update(user); |
|
103 } else { |
98 } else { |
104 userDao.save(user); |
99 dao.insertUser(user); |
105 } |
100 } |
106 |
101 |
107 setRedirectLocation(req, "./teams/"); |
102 setRedirectLocation(req, "./teams/"); |
108 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
103 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); |
109 |
104 |