Skip to content
Snippets Groups Projects
Commit 8bb5127a authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Merge branch...

Merge branch '213-reduce-the-amount-of-data-to-make-the-list-of-applications-load-faster' into 'develop'

Resolve "Reduce the amount of data to make the list of applications load faster"

See merge request !22
parents 7f5c2601 4c45890b
No related branches found
No related tags found
1 merge request!22Resolve "Reduce the amount of data to make the list of applications load faster"
Pipeline #88789 passed
......@@ -81,7 +81,8 @@ jwt.issuer=nmaas
jwt.signingKey=testKey
jwt.resetSigningKey=testResetKey
jwt.resetTokenValidFor=1800000
jwt.resetTokenRegistrationValid=86400000
jwt.resetTokenRegistrationValid = 86400000
# bypass captcha on integration tests
# https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha-v2-what-should-i-do
......
package net.geant.nmaas.portal.api.domain;
import lombok.*;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class ApplicationBaseViewS {
protected Long id;
@NotEmpty
protected String name;
@Builder.Default
protected List<AppDescriptionView> descriptions = new ArrayList<>();
@Builder.Default
protected Set<TagView> tags = new HashSet<>();
protected AppRateView rate;
}
......@@ -10,13 +10,7 @@ import net.geant.nmaas.notifications.MailAttributes;
import net.geant.nmaas.notifications.NotificationEvent;
import net.geant.nmaas.notifications.templates.MailType;
import net.geant.nmaas.orchestration.AppLifecycleManager;
import net.geant.nmaas.portal.api.domain.AppInstanceState;
import net.geant.nmaas.portal.api.domain.AppRateView;
import net.geant.nmaas.portal.api.domain.ApplicationBaseView;
import net.geant.nmaas.portal.api.domain.ApplicationStateChangeRequest;
import net.geant.nmaas.portal.api.domain.ApplicationView;
import net.geant.nmaas.portal.api.domain.Id;
import net.geant.nmaas.portal.api.domain.UserView;
import net.geant.nmaas.portal.api.domain.*;
import net.geant.nmaas.portal.api.exception.MarketException;
import net.geant.nmaas.portal.api.exception.MissingElementException;
import net.geant.nmaas.portal.api.exception.ProcessingException;
......@@ -95,9 +89,9 @@ public class ApplicationController extends AppBaseController {
@GetMapping("/base")
@Transactional
public List<ApplicationBaseView> getAllActiveApplicationBase() {
public List<ApplicationBaseViewS> getAllActiveApplicationBase() {
return appBaseService.findAllActiveApps().stream()
.map(app -> modelMapper.map(app, ApplicationBaseView.class))
.map(app -> modelMapper.map(app, ApplicationBaseViewS.class))
.map(this::setAppRating)
.collect(Collectors.toList());
}
......@@ -124,6 +118,12 @@ public class ApplicationController extends AppBaseController {
return baseView;
}
private ApplicationBaseViewS setAppRating(ApplicationBaseViewS baseView) {
Integer[] rating = this.ratingRepository.getApplicationRating(baseView.getId());
baseView.setRate(this.createAppRateView(rating));
return baseView;
}
private AppRateView createAppRateView(Integer[] rating) {
return new AppRateView(
Arrays.stream(rating).mapToInt(Integer::intValue).average().orElse(0.0),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment