diff --git a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java index b5c106c37295a6a8a86314799fa46509977a444a..9a145230ba1acc0391fa12811b4748e22fa32003 100644 --- a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java +++ b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java @@ -47,11 +47,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.security.Principal; import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @RestController @@ -173,6 +169,14 @@ public class ApplicationController extends AppBaseController { appBaseService.deleteAppBase(base); } + @GetMapping(value = "/base/{name}") + @PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN') || hasRole('ROLE_TOOL_MANAGER')") + @Transactional + public ApplicationBaseView getApplicationBase(@PathVariable String name) { + ApplicationBaseView app = modelMapper.map(appBaseService.findByName(name), ApplicationBaseView.class); + return this.setAppRating(app); + } + /* * Application part */ @@ -203,6 +207,25 @@ public class ApplicationController extends AppBaseController { ); } + @GetMapping(value = "/{name}/version/{version}") + @PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN') || hasRole('ROLE_TOOL_MANAGER')") + @Transactional + public ApplicationDTO getAppVersionByName(@PathVariable String name,@PathVariable String version) { + ApplicationBase base = this.appBaseService.findByName(name); + + Optional<Application> application = this.applicationService.findApplication(name, version); + + if(application.isPresent()) { + return new ApplicationDTO( + modelMapper.map(base, ApplicationBaseView.class), + modelMapper.map(application.get(), ApplicationView.class) + ); + } else { + throw new MissingElementException("Application " + name + " version " + version + " not found"); + } + + } + @GetMapping(value="/{id}") @Transactional public ApplicationDTO getApplicationDTO(@PathVariable Long id) {