4040@ RestController
4141@ RequestMapping ("/projects" )
4242public class ProjectController {
43- private ProjectRepository projectRepository ;
44- private WorkRepository workRepository ;
45- private Controller controller ;
46- private Model model ;
43+ private final ProjectRepository projectRepository ;
44+ private final WorkRepository workRepository ;
45+ private final Controller controller ;
46+ private final Model model ;
47+ private final WorkMapper workMapper ;
48+ private final ProjectMapper projectMapper ;
4749
4850 public ProjectController (final ProjectRepository projectRepository , final WorkRepository workRepository ,
49- final Controller controller , Model model ) {
51+ final Controller controller , Model model , WorkMapper workMapper , ProjectMapper projectMapper ) {
5052 this .projectRepository = projectRepository ;
5153 this .workRepository = workRepository ;
5254 this .controller = controller ;
5355 this .model = model ;
56+ this .workMapper = workMapper ;
57+ this .projectMapper = projectMapper ;
5458 }
5559
5660 @ GetMapping ("" )
@@ -64,7 +68,7 @@ public ResponseEntity<List<ProjectColorDTO>> getProjectColorDTOsByName(
6468 projects = projectRepository .findAll ();
6569 }
6670 List <ProjectColorDTO > projectColorDTOs = projects .stream ()
67- .map (ProjectMapper . INSTANCE ::projectToProjectDTO )
71+ .map (projectMapper ::projectToProjectDTO )
6872 .collect (Collectors .toList ());
6973 return ResponseEntity .ok (projectColorDTOs );
7074 }
@@ -76,15 +80,15 @@ public ResponseEntity<List<ProjectColorDTO>> getProjectColorDTOsByName(
7680 if (project .isEmpty ()) {
7781 throw new ResponseStatusException (HttpStatus .NOT_FOUND , "Project with id '" + id + "' not found" );
7882 }
79- return ProjectMapper . INSTANCE .projectToProjectDTO (project .get ());
83+ return projectMapper .projectToProjectDTO (project .get ());
8084 }
8185
8286 @ GetMapping ("/{id}/works" )
8387 public List <WorkDTO > getWorksFromProject (@ PathVariable final long id ) {
8488 return workRepository .findAll ().stream ().filter (work -> {
8589 Project project = work .getProject ();
8690 return project != null && project .getId () == id ;
87- }).map (work -> WorkMapper . INSTANCE . workToWorkDTO ( work ) ).collect (Collectors .toList ());
91+ }).map (workMapper :: workToWorkDTO ).collect (Collectors .toList ());
8892 }
8993
9094 @ GetMapping ("/{projectId}/works/{workId}" )
@@ -96,7 +100,7 @@ public WorkDTO getWorkByIdFromProject(@PathVariable final long projectId, @PathV
96100 return project != null && project .getId () == projectId && work .getId () == workId ;
97101 })
98102 .findFirst ()
99- .map (WorkMapper . INSTANCE ::workToWorkDTO )
103+ .map (workMapper ::workToWorkDTO )
100104 .orElseThrow (() -> new ResourceNotFoundException (
101105 "Work with id '" + workId + "' related to project with id '" + projectId
102106 + "' not found" ));
@@ -105,13 +109,13 @@ public WorkDTO getWorkByIdFromProject(@PathVariable final long projectId, @PathV
105109 @ PostMapping ("" )
106110 public ResponseEntity <ProjectColorDTO > createProject (@ Valid @ RequestBody final ProjectColorDTO newProjectDTO ) {
107111 try {
108- Project newProject = ProjectMapper . INSTANCE .projectDTOToProject (newProjectDTO );
112+ Project newProject = projectMapper .projectDTOToProject (newProjectDTO );
109113
110114 controller .addNewProject (newProject );
111115
112116 model .getProjectRepository ().save (newProject );
113117
114- ProjectColorDTO projectDTO = ProjectMapper . INSTANCE .projectToProjectDTO (newProject );
118+ ProjectColorDTO projectDTO = projectMapper .projectToProjectDTO (newProject );
115119
116120 return ResponseEntity .status (HttpStatus .CREATED ).body (projectDTO );
117121 } catch (Exception e ) {
@@ -130,7 +134,7 @@ public ResponseEntity<ProjectColorDTO> updateProjectColorDTO(@PathVariable final
130134 }
131135
132136 Project existingProject = optionalProject .get ();
133- Project newValuedProject = ProjectMapper . INSTANCE .projectDTOToProject (newValuedProjectDTO );
137+ Project newValuedProject = projectMapper .projectDTOToProject (newValuedProjectDTO );
134138
135139 existingProject .setName (newValuedProject .getName ());
136140 existingProject .setDescription (newValuedProject .getDescription ());
@@ -142,7 +146,7 @@ public ResponseEntity<ProjectColorDTO> updateProjectColorDTO(@PathVariable final
142146
143147 projectRepository .save (existingProject );
144148
145- ProjectColorDTO updatedProjectDTO = ProjectMapper . INSTANCE .projectToProjectDTO (existingProject );
149+ ProjectColorDTO updatedProjectDTO = projectMapper .projectToProjectDTO (existingProject );
146150
147151 return ResponseEntity .ok (updatedProjectDTO );
148152 } catch (DataAccessException e ) {
@@ -160,7 +164,7 @@ public ResponseEntity<WorkDTO> createWorkInProject(@PathVariable final long id,
160164 work .setProject (project );
161165 workRepository .save (work );
162166
163- WorkDTO workDTO = WorkMapper . INSTANCE .workToWorkDTO (work );
167+ WorkDTO workDTO = workMapper .workToWorkDTO (work );
164168
165169 return ResponseEntity .status (HttpStatus .CREATED ).body (workDTO );
166170 } else {
@@ -172,7 +176,7 @@ public ResponseEntity<WorkDTO> createWorkInProject(@PathVariable final long id,
172176 public ResponseEntity <String > deleteProject (@ PathVariable final long id ) {
173177 Optional <Project > projectOptional = projectRepository .findById (id );
174178
175- if (! projectOptional .isPresent ()) {
179+ if (projectOptional .isEmpty ()) {
176180 throw new ResponseStatusException (HttpStatus .NOT_FOUND , "Project with the ID '" + id + "' not found" );
177181 }
178182
@@ -190,14 +194,14 @@ public ResponseEntity<String> deleteProject(@PathVariable final long id) {
190194 @ GetMapping ("/current" )
191195 public ProjectColorDTO getWorkProjects () {
192196 Project project = model .activeWorkItem .get ().getProject ();
193- return ProjectMapper . INSTANCE .projectToProjectDTO (project );
197+ return projectMapper .projectToProjectDTO (project );
194198 }
195199
196200 @ PutMapping ("/current" )
197201 public ResponseEntity <ProjectColorDTO > changeProject (@ Valid @ RequestBody Project newProject ) {
198202 try {
199203 controller .changeProject (newProject );
200- ProjectColorDTO projectDTO = ProjectMapper . INSTANCE .projectToProjectDTO (newProject );
204+ ProjectColorDTO projectDTO = projectMapper .projectToProjectDTO (newProject );
201205 return ResponseEntity .ok (projectDTO );
202206 } catch (Exception e ) {
203207 return ResponseEntity .status (HttpStatus .INTERNAL_SERVER_ERROR ).body (null );
0 commit comments