src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java

changeset 136
7281bdf43c60
parent 134
f47e82cd6077
child 137
a7e543ab0c5f
equal deleted inserted replaced
135:bafc315294fd 136:7281bdf43c60
44 import java.io.IOException; 44 import java.io.IOException;
45 import java.sql.Date; 45 import java.sql.Date;
46 import java.sql.SQLException; 46 import java.sql.SQLException;
47 import java.util.List; 47 import java.util.List;
48 import java.util.NoSuchElementException; 48 import java.util.NoSuchElementException;
49 import java.util.Optional;
49 import java.util.stream.Collectors; 50 import java.util.stream.Collectors;
50 import java.util.stream.Stream; 51 import java.util.stream.Stream;
51 52
52 @WebServlet( 53 @WebServlet(
53 name = "ProjectsModule", 54 name = "ProjectsModule",
451 452
452 @RequestMapping(requestPath = "commit-issue", method = HttpMethod.POST) 453 @RequestMapping(requestPath = "commit-issue", method = HttpMethod.POST)
453 public ResponseType commitIssue(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) throws IOException { 454 public ResponseType commitIssue(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) throws IOException {
454 try { 455 try {
455 final var issue = new Issue(getParameter(req, Integer.class, "id").orElseThrow()); 456 final var issue = new Issue(getParameter(req, Integer.class, "id").orElseThrow());
457 final var componentId = getParameter(req, Integer.class, "component");
458 final Component component;
459 if (componentId.isPresent()) {
460 component = dao.getComponentDao().find(componentId.get());
461 } else {
462 component = null;
463 }
456 issue.setProject(new Project(getParameter(req, Integer.class, "pid").orElseThrow())); 464 issue.setProject(new Project(getParameter(req, Integer.class, "pid").orElseThrow()));
457 getParameter(req, String.class, "category").map(IssueCategory::valueOf).ifPresent(issue::setCategory); 465 getParameter(req, String.class, "category").map(IssueCategory::valueOf).ifPresent(issue::setCategory);
458 getParameter(req, String.class, "status").map(IssueStatus::valueOf).ifPresent(issue::setStatus); 466 getParameter(req, String.class, "status").map(IssueStatus::valueOf).ifPresent(issue::setStatus);
459 issue.setSubject(getParameter(req, String.class, "subject").orElseThrow()); 467 issue.setSubject(getParameter(req, String.class, "subject").orElseThrow());
460 getParameter(req, Integer.class, "assignee").map( 468 issue.setComponent(component);
461 userid -> userid >= 0 ? new User(userid) : null 469 getParameter(req, Integer.class, "assignee").map(userid -> {
470 if (userid >= 0) {
471 return new User(userid);
472 } else if (userid == -2) {
473 return Optional.ofNullable(component).map(Component::getLead).orElse(null);
474 } else {
475 return null;
476 }
477 }
462 ).ifPresent(issue::setAssignee); 478 ).ifPresent(issue::setAssignee);
463 getParameter(req, Integer.class, "component").map(
464 cid -> cid >= 0 ? new Component(cid) : null
465 ).ifPresent(issue::setComponent);
466 getParameter(req, String.class, "description").ifPresent(issue::setDescription); 479 getParameter(req, String.class, "description").ifPresent(issue::setDescription);
467 getParameter(req, Date.class, "eta").ifPresent(issue::setEta); 480 getParameter(req, Date.class, "eta").ifPresent(issue::setEta);
468 481
469 getParameter(req, Integer[].class, "affected") 482 getParameter(req, Integer[].class, "affected")
470 .map(Stream::of) 483 .map(Stream::of)

mercurial