Skip to content

Commit 715cc83

Browse files
committed
perf update for get all api and temp count api
1 parent cdf88ff commit 715cc83

File tree

2 files changed

+41
-11
lines changed

2 files changed

+41
-11
lines changed

src/main/java/com/redhat/labs/omp/resource/EngagementResource.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.redhat.labs.omp.resource;
22

3+
import java.time.Duration;
4+
import java.time.Instant;
5+
import java.util.HashMap;
36
import java.util.List;
7+
import java.util.Map;
48

59
import javax.inject.Inject;
610
import javax.validation.constraints.NotBlank;
@@ -123,4 +127,22 @@ public Response getStatus(@PathParam("customer") String customer, @PathParam("en
123127
return Response.ok().entity(status).build();
124128
}
125129

130+
@GET
131+
@Path("/count")
132+
public Response getEngagementCount() {
133+
134+
Instant start = Instant.now();
135+
136+
Integer count = engagementService.countAllEngagements();
137+
138+
Instant end = Instant.now();
139+
long elapsed = Duration.between(start, end).getSeconds();
140+
141+
Map<String, String> map = new HashMap<>();
142+
map.put("count", count.toString());
143+
map.put("elapsed_time", String.valueOf(elapsed));
144+
return Response.ok(map).build();
145+
146+
}
147+
126148
}

src/main/java/com/redhat/labs/omp/service/EngagementService.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.ArrayList;
55
import java.util.List;
66
import java.util.Optional;
7+
import java.util.stream.Collectors;
78

89
import javax.annotation.PostConstruct;
910
import javax.enterprise.context.ApplicationScoped;
@@ -178,19 +179,26 @@ public List<Engagement> getAllEngagements() {
178179

179180
List<Project> projects = projectService.getProjectsByGroup(engagementRepositoryId, true);
180181

181-
List<Engagement> engagementList = new ArrayList<>();
182+
return
183+
projects
184+
.parallelStream()
185+
.map(project -> {
186+
return getEngagement(project, true);
187+
})
188+
.filter(optional -> optional.isPresent())
189+
.map(optional -> {
190+
return optional.get();
191+
})
192+
.collect(Collectors.toList());
182193

183-
for (Project project : projects) {
184-
LOGGER.debug("project id {}", project.getId());
185-
Optional<Engagement> engagement = getEngagement(project, true);
186-
if(engagement.isPresent() ) {
187-
engagementList.add(engagement.get());
188-
}
189-
}
194+
}
195+
196+
public Integer countAllEngagements() {
197+
198+
return getAllEngagements().size();
190199

191-
return engagementList;
192200
}
193-
201+
194202
public Engagement getEngagement(String namespaceOrId, boolean includeStatus) {
195203
Engagement engagement = null;
196204

@@ -215,7 +223,7 @@ public Engagement getEngagement(String customerName, String engagementName, bool
215223
return engagement;
216224
}
217225

218-
private Optional<Engagement> getEngagement(Project project, boolean includeStatus) {
226+
public Optional<Engagement> getEngagement(Project project, boolean includeStatus) {
219227
Engagement engagement = null;
220228

221229
Optional<File> engagementFile = fileService.getFileAllow404(project.getId(), ENGAGEMENT_FILE);

0 commit comments

Comments
 (0)