2626import de .doubleslash .keeptime .model .Work ;
2727import de .doubleslash .keeptime .model .repos .ProjectRepository ;
2828import de .doubleslash .keeptime .model .repos .WorkRepository ;
29+ import javafx .application .Platform ;
2930import org .springframework .dao .DataAccessException ;
3031import org .springframework .http .HttpStatus ;
3132import org .springframework .http .ResponseEntity ;
3233import org .springframework .web .bind .annotation .*;
3334import org .springframework .web .server .ResponseStatusException ;
3435
35- import javax .validation .Valid ;
36+ import jakarta .validation .Valid ;
3637import java .util .List ;
3738import java .util .Optional ;
3839import java .util .stream .Collectors ;
@@ -102,8 +103,9 @@ public WorkDTO getWorkByIdFromProject(@PathVariable final long projectId, @PathV
102103 .findFirst ()
103104 .map (workMapper ::workToWorkDTO )
104105 .orElseThrow (() -> new ResourceNotFoundException (
105- "Work with id '" + workId + "' related to project with id '" + projectId
106- + "' not found" ));
106+ "Work with id '" + workId + "' related to project with id '"
107+ + projectId
108+ + "' not found" ));
107109 }
108110
109111 @ PostMapping ("" )
@@ -113,10 +115,7 @@ public ResponseEntity<ProjectColorDTO> createProject(@Valid @RequestBody final P
113115
114116 controller .addNewProject (newProject );
115117
116- model .getProjectRepository ().save (newProject );
117-
118118 ProjectColorDTO projectDTO = projectMapper .projectToProjectDTO (newProject );
119-
120119 return ResponseEntity .status (HttpStatus .CREATED ).body (projectDTO );
121120 } catch (Exception e ) {
122121 return ResponseEntity .status (HttpStatus .INTERNAL_SERVER_ERROR ).build ();
@@ -136,15 +135,7 @@ public ResponseEntity<ProjectColorDTO> updateProjectColorDTO(@PathVariable final
136135 Project existingProject = optionalProject .get ();
137136 Project newValuedProject = projectMapper .projectDTOToProject (newValuedProjectDTO );
138137
139- existingProject .setName (newValuedProject .getName ());
140- existingProject .setDescription (newValuedProject .getDescription ());
141- existingProject .setIndex (newValuedProject .getIndex ());
142- existingProject .setWork (newValuedProject .isWork ());
143- existingProject .setColor (newValuedProject .getColor ());
144- existingProject .setDefault (newValuedProject .isDefault ());
145- existingProject .setEnabled (newValuedProject .isEnabled ());
146-
147- projectRepository .save (existingProject );
138+ controller .editProject (existingProject , newValuedProject );
148139
149140 ProjectColorDTO updatedProjectDTO = projectMapper .projectToProjectDTO (existingProject );
150141
@@ -159,36 +150,36 @@ public ResponseEntity<WorkDTO> createWorkInProject(@PathVariable final long id,
159150 @ Valid @ RequestBody final Work work ) {
160151 Optional <Project > projectOptional = projectRepository .findById (id );
161152
162- if (projectOptional .isPresent ()) {
163- Project project = projectOptional .get ();
164- work .setProject (project );
165- workRepository .save (work );
166-
167- WorkDTO workDTO = workMapper .workToWorkDTO (work );
168-
169- return ResponseEntity .status (HttpStatus .CREATED ).body (workDTO );
170- } else {
153+ if (projectOptional .isEmpty ()) {
171154 return ResponseEntity .notFound ().build ();
172155 }
156+
157+ Project project = projectOptional .get ();
158+ work .setProject (project );
159+ workRepository .save (work );
160+
161+ WorkDTO workDTO = workMapper .workToWorkDTO (work );
162+
163+ return ResponseEntity .status (HttpStatus .CREATED ).body (workDTO );
173164 }
174165
175166 @ DeleteMapping ("/{id}" )
176167 public ResponseEntity <String > deleteProject (@ PathVariable final long id ) {
177168 Optional <Project > projectOptional = projectRepository .findById (id );
178169
179170 if (projectOptional .isEmpty ()) {
180- throw new ResponseStatusException ( HttpStatus . NOT_FOUND , "Project with the ID '" + id + "' not found" );
171+ return ResponseEntity . notFound (). build ( );
181172 }
182173
183174 Project project = projectOptional .get ();
184175
185176 if (project .isDefault ()) {
186177 return new ResponseEntity <>("Project cannot be deleted as it is the default" , HttpStatus .BAD_REQUEST );
187- } else {
188- controller .deleteProject (project );
189- projectRepository .delete (project );
190- return new ResponseEntity <>("Project successfully deleted" , HttpStatus .OK );
191178 }
179+
180+ controller .deleteProject (project );
181+ projectRepository .delete (project );
182+ return new ResponseEntity <>("Project successfully deleted" , HttpStatus .OK );
192183 }
193184
194185 @ GetMapping ("/current" )
@@ -209,7 +200,7 @@ public ResponseEntity<ProjectColorDTO> changeProject(@Valid @RequestBody Project
209200 }
210201
211202 @ ResponseStatus (value = HttpStatus .NOT_FOUND )
212- public class ResourceNotFoundException extends RuntimeException {
203+ public static class ResourceNotFoundException extends RuntimeException {
213204 public ResourceNotFoundException (String message ) {
214205 super (message );
215206 }
0 commit comments