11package org .opendevstack .component_provisioner .server .controllers ;
22
33import lombok .AllArgsConstructor ;
4- import lombok .Generated ;
54import lombok .extern .slf4j .Slf4j ;
65import org .opendevstack .component_provisioner .server .api .ProjectComponentsWithProvisionStatusApi ;
76import org .opendevstack .component_provisioner .server .facade .ProjectComponentsApiFacade ;
8- import org .opendevstack .component_provisioner .server .model .Pagination ;
9- import org .opendevstack .component_provisioner .server .model .ProjectComponentListItem ;
107import org .opendevstack .component_provisioner .server .model .ProjectComponentListResponse ;
118import org .opendevstack .component_provisioner .server .model .ProjectComponentProvisionStatus ;
129import org .springframework .http .ResponseEntity ;
1310import org .springframework .stereotype .Controller ;
1411import org .springframework .web .bind .annotation .RequestMapping ;
15- import org .springframework .web .servlet .support .ServletUriComponentsBuilder ;
16-
17- import java .math .BigDecimal ;
18- import java .net .URI ;
19- import java .util .ArrayList ;
20- import java .util .List ;
21- import java .util .Optional ;
2212
2313@ Controller
2414@ RequestMapping ("${openapi.componentProvisionerREST.base-path:/v1}" )
@@ -41,65 +31,12 @@ public ResponseEntity<ProjectComponentProvisionStatus> getProjectComponentProvis
4131 return ResponseEntity .ok (projectComponentExtendedInfo );
4232 }
4333
44- // MOCKED RESULT
45- @ Generated
4634 @ Override
4735 public ResponseEntity <ProjectComponentListResponse > getAllProjectComponents (Integer page , Integer size ) {
4836 log .debug ("getAllProjectComponents with page {} and page size of {}" , page , size );
4937
50- int currentPage = Optional .ofNullable (page ).orElse (0 );
51- int pageSize = Optional .ofNullable (size ).orElse (20 );
52-
53- int totalElements = 40 ;
54-
55- List <ProjectComponentListItem > allItems = new ArrayList <>();
56-
57- for (int i = 0 ; i < totalElements ; i ++) {
58- allItems .add (ProjectComponentListItem .builder ()
59- .projectKey ("PROJECT_" + i )
60- .componentId ("component-" + i )
61- .caller ("user" + i + "@email.com" )
62- .catalogItemSlug ("tech-" + i )
63- .createdAt (BigDecimal .valueOf (1707043200000L + i ))
64- .updatedAt (BigDecimal .valueOf (1707043200000L + i ))
65- .build ());
66- }
67-
68- int fromIndex = Math .min (currentPage * pageSize , totalElements );
69- int toIndex = Math .min (fromIndex + pageSize , totalElements );
70-
71- List <ProjectComponentListItem > pageItems = allItems .subList (fromIndex , toIndex );
72-
73- int totalPages = (int ) Math .ceil ((double ) totalElements / pageSize );
74-
75- String next = currentPage < totalPages - 1
76- ? ServletUriComponentsBuilder .fromCurrentRequest ()
77- .replaceQueryParam ("page" , currentPage + 1 )
78- .replaceQueryParam ("size" , pageSize )
79- .toUriString ()
80- : null ;
81-
82- String previous = currentPage > 0
83- ? ServletUriComponentsBuilder .fromCurrentRequest ()
84- .replaceQueryParam ("page" , currentPage - 1 )
85- .replaceQueryParam ("size" , pageSize )
86- .toUriString ()
87- : null ;
88-
89- Pagination pagination = Pagination .builder ()
90- .page (currentPage )
91- .size (pageSize )
92- .totalElements (totalElements )
93- .totalPages (totalPages )
94- .next (next != null ? URI .create (next ) : null )
95- .previous (previous != null ? URI .create (previous ) : null )
96- .build ();
97-
98- ProjectComponentListResponse response = ProjectComponentListResponse .builder ()
99- .data (pageItems )
100- .pagination (pagination )
101- .build ();
38+ var paginatedProjectComponents = projectComponentsApiFacade .getPaginatedProjectComponents (page , size );
10239
103- return ResponseEntity .ok (response );
40+ return ResponseEntity .ok (paginatedProjectComponents );
10441 }
10542}
0 commit comments