1616
1717package de .doubleslash .keeptime .rest .controller ;
1818
19- import java .util .List ;
20- import java .util .Optional ;
21- import java .util .stream .Stream ;
22-
23- import org .springframework .http .HttpStatus ;
24- import org .springframework .http .ResponseEntity ;
25- import org .springframework .web .bind .annotation .DeleteMapping ;
26- import org .springframework .web .bind .annotation .GetMapping ;
27- import org .springframework .web .bind .annotation .PathVariable ;
28- import org .springframework .web .bind .annotation .PutMapping ;
29- import org .springframework .web .bind .annotation .RequestBody ;
30- import org .springframework .web .bind .annotation .RequestMapping ;
31- import org .springframework .web .bind .annotation .RequestParam ;
32- import org .springframework .web .bind .annotation .RestController ;
33-
3419import de .doubleslash .keeptime .model .Model ;
3520import de .doubleslash .keeptime .model .Project ;
3621import de .doubleslash .keeptime .model .Work ;
3722import de .doubleslash .keeptime .model .repos .ProjectRepository ;
3823import de .doubleslash .keeptime .model .repos .WorkRepository ;
3924import de .doubleslash .keeptime .rest .DTO .WorkDTO ;
4025import de .doubleslash .keeptime .rest .mapper .WorkMapper ;
26+ import org .springframework .http .HttpStatus ;
27+ import org .springframework .http .ResponseEntity ;
28+ import org .springframework .web .bind .annotation .*;
29+
30+ import java .time .LocalDate ;
31+ import java .util .List ;
32+ import java .util .Optional ;
4133
4234@ RestController
4335@ RequestMapping ("/api/works" )
@@ -57,15 +49,11 @@ public WorksController(final WorkRepository workRepository, final ProjectReposit
5749 }
5850
5951 @ GetMapping
60- public List <WorkDTO > getWorks (@ RequestParam (name = "name" , required = false ) final String projectName ) {
61- List <Work > works = workRepository .findAll ();
62-
63- Stream <Work > workStream = works .stream ();
64-
65- if (projectName != null ) {
66- workStream = workStream .filter (work -> work .getProject ().getName ().equals (projectName ));
67- }
68- return workStream .map (workMapper ::workToWorkDTO ).toList ();
52+ public List <WorkDTO > getWorks (@ RequestParam (name = "id" , required = false ) final Long projectId ,
53+ @ RequestParam (name = "fromDate" , required = false ) final LocalDate fromDate ,
54+ @ RequestParam (name = "toDate" , required = false ) final LocalDate toDate ) {
55+ List <Work > works = workRepository .findWorkItems (projectId , fromDate , toDate );
56+ return works .stream ().map (workMapper ::workToWorkDTO ).toList ();
6957 }
7058
7159 @ PutMapping ("/{id}" )
0 commit comments