11package de .doubleslash .keeptime .REST_API .controller ;
22
3+ import de .doubleslash .keeptime .REST_API .ProjectColorDTO ;
34import de .doubleslash .keeptime .controller .Controller ;
45import de .doubleslash .keeptime .model .Model ;
56import de .doubleslash .keeptime .model .Project ;
67import de .doubleslash .keeptime .model .Work ;
7- import de .doubleslash .keeptime .model .persistenceconverter .ColorConverter ;
88import de .doubleslash .keeptime .model .repos .ProjectRepository ;
99import de .doubleslash .keeptime .model .repos .WorkRepository ;
10- import javafx .application .Platform ;
11- import javafx .beans .property .ObjectProperty ;
12- import javafx .beans .property .SimpleObjectProperty ;
13- import javafx .scene .paint .Color ;
10+ import org .springframework .beans .factory .annotation .Autowired ;
1411import org .springframework .http .HttpStatus ;
1512import org .springframework .http .ResponseEntity ;
1613import org .springframework .web .bind .annotation .*;
1714import org .springframework .web .server .ResponseStatusException ;
1815
19- import javax .persistence .Convert ;
2016import javax .validation .Valid ;
2117import java .util .List ;
2218import java .util .Optional ;
2319import java .util .stream .Collectors ;
20+ import java .util .stream .Stream ;
2421
2522@ RestController
2623@ RequestMapping ("/projects" )
@@ -31,6 +28,8 @@ public class ProjectController {
3128
3229 private Model model ;
3330
31+ private ProjectMapper projectMapper ;
32+
3433 public ProjectController (final ProjectRepository projectRepository , final WorkRepository workRepository ,
3534 final Controller controller , Model model ) {
3635 this .projectRepository = projectRepository ;
@@ -40,13 +39,21 @@ public ProjectController(final ProjectRepository projectRepository, final WorkRe
4039 }
4140
4241 @ GetMapping ("" )
43- public List <Project > getProjects (@ RequestParam (name = "name" , required = false ) final String name ) {
44- List <Project > projects = projectRepository .findAll ();
42+ public ResponseEntity <List <ProjectColorDTO >> getProjectColorDTOsByName (
43+ @ RequestParam (name = "name" , required = false ) final String name ) {
44+ List <Project > projects ;
4545
4646 if (name != null ) {
47- return projects .stream ().filter (project -> project .getName ().equals (name )).collect (Collectors .toList ());
47+ projects = projectRepository .findByName (name );
48+ } else {
49+ projects = projectRepository .findAll ();
4850 }
49- return projects ;
51+
52+ List <ProjectColorDTO > projectColorDTOs = projects .stream ()
53+ .map (ProjectMapper .INSTANCE ::projectToProjectDTO )
54+ .collect (Collectors .toList ());
55+
56+ return ResponseEntity .ok (projectColorDTOs );
5057 }
5158
5259 @ GetMapping ("/{id}" )
@@ -87,54 +94,51 @@ public Work getWorkByIdFromProject(@PathVariable final long projectId, @PathVari
8794 return project ;
8895 }
8996
90- // @Convert(converter = ColorConverter.class, disableConversion = false)
91- // private Color color;
92- //
93- // @PutMapping("{id}")
94- // public ResponseEntity<Project> updateProject(@PathVariable final long id,
95- // @Valid @RequestBody final Project newValuedProject) {
96- // final Project updateProject = getProjectById(id);
97+ //@PutMapping("/{id}")
98+ //public ResponseEntity<ProjectColorDTO> updateProjectColorDTO(@PathVariable final long id,
99+ // @Valid @RequestBody final ProjectColorDTO newValuedProjectDTO) {
100+ // final Project updateProject = getProjectById(id);
97101 //
98- // updateProject.setName(newValuedProject.getName());
99- // updateProject.setDescription(newValuedProject.getDescription());
100- // updateProject.setIndex(newValuedProject.getIndex());
101- // updateProject.setWork(newValuedProject.isWork());
102- // color = newValuedProject.getColor();
103- // updateProject.setColor(color);
104- // // project.setColor(Color.RED);
105- // System.err.println(newValuedProject.getColor().getRed() + " R " + updateProject.getColor().getRed());
106- // System.err.println(newValuedProject.getColor().getGreen() + " G " + updateProject.getColor().getGreen());
107- // System.err.println(newValuedProject.getColor().getBlue() + " B " + updateProject.getColor().getBlue());
102+ // Project newValuedProject = ProjectMapper.INSTANCE.projectDTOToProject(newValuedProjectDTO);
108103 //
104+ // updateProject.setName(newValuedProject.getName());
105+ // updateProject.setDescription(newValuedProject.getDescription());
106+ // updateProject.setIndex(newValuedProject.getIndex());
107+ // updateProject.setWork(newValuedProject.isWork());
109108 //
110- // updateProject.setDefault(newValuedProject.isDefault());
111- // updateProject.setEnabled(newValuedProject.isEnabled());
109+ // updateProject.setDefault(newValuedProject.isDefault());
110+ // updateProject.setEnabled(newValuedProject.isEnabled());
112111 //
113- // projectRepository.save(updateProject);
112+ // projectRepository.save(updateProject);
114113 //
115- // return ResponseEntity.ok(updateProject);
116- // }
114+ // ProjectColorDTO updatedProjectDTO = ProjectMapper.INSTANCE.projectToProjectDTO(updateProject);
117115 //
116+ // return ResponseEntity.ok(updatedProjectDTO);
117+ //}
118+ @ PutMapping ("/{id}" )
119+ public ResponseEntity <ProjectColorDTO > updateProjectColorDTO (@ PathVariable final long id ,
120+ @ Valid @ RequestBody final ProjectColorDTO newValuedProjectDTO ) {
121+ try {
122+ final Project updateProject = getProjectById (id );
118123
119- ColorConverter colorConverter ;
120-
121- @ PutMapping ("{id}" )
122- public ResponseEntity <Project > updateProject (@ PathVariable final long id ,
123- @ Valid @ RequestBody final Project newValuedProject ) {
124- final Project updateProject = getProjectById (id );
124+ Project newValuedProject = ProjectMapper .INSTANCE .projectDTOToProject (newValuedProjectDTO );
125125
126- updateProject .setName (newValuedProject .getName ());
127- updateProject .setDescription (newValuedProject .getDescription ());
128- updateProject .setIndex (newValuedProject .getIndex ());
129- updateProject .setWork (newValuedProject .isWork ());
126+ updateProject .setName (newValuedProject .getName ());
127+ updateProject .setDescription (newValuedProject .getDescription ());
128+ updateProject .setIndex (newValuedProject .getIndex ());
129+ updateProject .setWork (newValuedProject .isWork ());
130+ updateProject .setColor (newValuedProject .getColor ());
131+ updateProject .setDefault (newValuedProject .isDefault ());
132+ updateProject .setEnabled (newValuedProject .isEnabled ());
130133
131- updateProject .setColor (newValuedProject .getColor ());
132- updateProject .setDefault (newValuedProject .isDefault ());
133- updateProject .setEnabled (newValuedProject .isEnabled ());
134+ projectRepository .save (updateProject );
134135
135- projectRepository . save (updateProject );
136+ ProjectColorDTO updatedProjectDTO = ProjectMapper . INSTANCE . projectToProjectDTO (updateProject );
136137
137- return ResponseEntity .ok (updateProject );
138+ return ResponseEntity .ok (updatedProjectDTO );
139+ } catch (Exception e ) {
140+ return ResponseEntity .status (HttpStatus .INTERNAL_SERVER_ERROR ).body (null );
141+ }
138142 }
139143
140144 @ PostMapping ("/{id}/works" )
0 commit comments