Skip to content

Commit bed209c

Browse files
committed
IPTE-165: Include ColorDTO
1 parent 2e83a1d commit bed209c

File tree

15 files changed

+479
-207
lines changed

15 files changed

+479
-207
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package de.doubleslash.keeptime.REST_API;
2+
3+
import de.doubleslash.keeptime.REST_API.controller.ColorDTO;
4+
5+
public class ProjectColorDTO {
6+
7+
private String name;
8+
private String description;
9+
private ColorDTO color;
10+
private boolean isWork;
11+
private boolean isDefault;
12+
private boolean isEnabled;
13+
private int index;
14+
15+
public ProjectColorDTO(String name, String description, ColorDTO color, boolean isWork, int index, boolean isDefault) {
16+
this.name = name;
17+
this.description = description;
18+
this.color = color;
19+
this.isWork = isWork;
20+
this.index = index;
21+
this.isDefault = isDefault;
22+
this.isEnabled = true;
23+
}
24+
25+
public String getName() {
26+
return name;
27+
}
28+
29+
public void setName(String name) {
30+
this.name = name;
31+
}
32+
33+
public String getDescription() {
34+
return description;
35+
}
36+
37+
public void setDescription(String description) {
38+
this.description = description;
39+
}
40+
41+
public ColorDTO getColor() {
42+
return color;
43+
}
44+
45+
public void setColor(ColorDTO color) {
46+
this.color = color;
47+
}
48+
49+
public boolean isWork() {
50+
return isWork;
51+
}
52+
53+
public void setWork(boolean isWork) {
54+
this.isWork = isWork;
55+
}
56+
57+
public boolean isDefault() {
58+
return isDefault;
59+
}
60+
61+
public void setDefault(boolean isDefault) {
62+
this.isDefault = isDefault;
63+
}
64+
65+
public boolean isEnabled() {
66+
return isEnabled;
67+
}
68+
69+
public void setEnabled(boolean isEnabled) {
70+
this.isEnabled = isEnabled;
71+
}
72+
73+
public int getIndex() {
74+
return index;
75+
}
76+
77+
public void setIndex(int index) {
78+
this.index = index;
79+
}
80+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package de.doubleslash.keeptime.REST_API.controller;
2+
3+
public class ColorDTO {
4+
private double red;
5+
private double green;
6+
private double blue;
7+
private double opacity;
8+
9+
public double getRed() {
10+
return red;
11+
}
12+
13+
public void setRed(double red) {
14+
this.red = red;
15+
}
16+
17+
public double getGreen() {
18+
return green;
19+
}
20+
21+
public void setGreen(double green) {
22+
this.green = green;
23+
}
24+
25+
public double getBlue() {
26+
return blue;
27+
}
28+
29+
public void setBlue(double blue) {
30+
this.blue = blue;
31+
}
32+
33+
public double getOpacity() {
34+
return opacity;
35+
}
36+
37+
public void setOpacity(double opacity) {
38+
this.opacity = opacity;
39+
}
40+
}

src/main/java/de/doubleslash/keeptime/REST_API/controller/ColorJsonSerializer.java

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package de.doubleslash.keeptime.REST_API.controller;
2+
3+
import javafx.scene.paint.Color;
4+
import org.mapstruct.Mapper;
5+
6+
@Mapper
7+
public interface ColorMapper {
8+
default ColorDTO colorToColorDTO(Color color) {
9+
10+
if (color == null) {
11+
return null;
12+
}
13+
System.out.println(color.getRed());
14+
System.out.println(color.getGreen());
15+
System.out.println(color.getBlue());
16+
17+
System.out.println("-------------------------------");
18+
19+
ColorDTO colorDTO = new ColorDTO();
20+
colorDTO.setRed(Color.RED.getRed());
21+
colorDTO.setGreen(color.getGreen());
22+
colorDTO.setBlue(color.getBlue());
23+
colorDTO.setOpacity(color.getOpacity());
24+
System.out.println(colorDTO.getRed());
25+
System.out.println(colorDTO.getGreen());
26+
System.out.println(colorDTO.getBlue());
27+
return colorDTO;
28+
}
29+
30+
default Color colorDTOToColor(ColorDTO colorDTO) {
31+
if (colorDTO == null) {
32+
return null;
33+
}
34+
35+
return new Color(colorDTO.getRed(), colorDTO.getGreen(), colorDTO.getBlue(), colorDTO.getOpacity());
36+
}
37+
}

src/main/java/de/doubleslash/keeptime/REST_API/controller/ProjectController.java

Lines changed: 51 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
package de.doubleslash.keeptime.REST_API.controller;
22

3+
import de.doubleslash.keeptime.REST_API.ProjectColorDTO;
34
import de.doubleslash.keeptime.controller.Controller;
45
import de.doubleslash.keeptime.model.Model;
56
import de.doubleslash.keeptime.model.Project;
67
import de.doubleslash.keeptime.model.Work;
7-
import de.doubleslash.keeptime.model.persistenceconverter.ColorConverter;
88
import de.doubleslash.keeptime.model.repos.ProjectRepository;
99
import 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;
1411
import org.springframework.http.HttpStatus;
1512
import org.springframework.http.ResponseEntity;
1613
import org.springframework.web.bind.annotation.*;
1714
import org.springframework.web.server.ResponseStatusException;
1815

19-
import javax.persistence.Convert;
2016
import javax.validation.Valid;
2117
import java.util.List;
2218
import java.util.Optional;
2319
import 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")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package de.doubleslash.keeptime.REST_API.controller;
2+
import de.doubleslash.keeptime.REST_API.ProjectColorDTO;
3+
import de.doubleslash.keeptime.model.Project;
4+
import org.mapstruct.Mapper;
5+
import org.mapstruct.Mapping;
6+
import org.mapstruct.factory.Mappers;
7+
8+
@Mapper(uses = ColorMapper.class)
9+
public interface ProjectMapper {
10+
11+
ProjectMapper INSTANCE = Mappers.getMapper(ProjectMapper.class);
12+
ProjectColorDTO projectToProjectDTO(Project project);
13+
Project projectDTOToProject(ProjectColorDTO projectColorDTO);
14+
}

src/main/java/de/doubleslash/keeptime/REST_API/controller/WorkMapper.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,4 @@
11
package de.doubleslash.keeptime.REST_API.controller;
2-
//import de.doubleslash.keeptime.model.Work;
3-
//import org.mapstruct.Mapper;
4-
//import org.mapstruct.Mapping;
5-
//import org.springframework.stereotype.Component;
6-
//
7-
//@Mapper(componentModel = "spring")
8-
//@Component
9-
//public interface WorkMapper {
10-
//
11-
// @Mapping(source = "project.id", target = "projectId")
12-
// @Mapping(source = "project.color", target = "color")
13-
// WorkDTO workToWorkDTO(Work work);
14-
//}
15-
// @Mapping(target = "id", ignore = true)
16-
// @Mapping(target = "project", ignore = true)
17-
// Work updateWorkFromDTO(WorkDTO workDTO, @MappingTarget Work existingWork);
18-
//}
192

203

214
import de.doubleslash.keeptime.model.Work;
@@ -28,10 +11,8 @@ public interface WorkMapper {
2811

2912
WorkMapper INSTANCE = Mappers.getMapper(WorkMapper.class);
3013

31-
@Mapping(source = "project", target = "project")
3214
WorkDTO workToWorkDTO(Work work);
3315

34-
@Mapping(source = "project", target = "project")
3516
Work workDTOToWork(WorkDTO workDTO);
3617
}
3718

0 commit comments

Comments
 (0)