diff --git a/src/main/java/com/olympus/hermione/controllers/ScenarioController.java b/src/main/java/com/olympus/hermione/controllers/ScenarioController.java index e863549..9744fb6 100644 --- a/src/main/java/com/olympus/hermione/controllers/ScenarioController.java +++ b/src/main/java/com/olympus/hermione/controllers/ScenarioController.java @@ -100,6 +100,11 @@ public class ScenarioController { public List getScenarioByUser() { return scenarioExecutionService.getListExecutionScenarioByUser(); } + + @GetMapping("/getScenariosForRE") + public List getScenariosForRE() { + return scenarioService.getListScenariosForRE(); + } diff --git a/src/main/java/com/olympus/hermione/models/Scenario.java b/src/main/java/com/olympus/hermione/models/Scenario.java index 82a7825..53d57a1 100644 --- a/src/main/java/com/olympus/hermione/models/Scenario.java +++ b/src/main/java/com/olympus/hermione/models/Scenario.java @@ -25,7 +25,7 @@ public class Scenario { private List steps; private List inputs; private String visible; - + private String category; @DocumentReference private List availableForProjects; diff --git a/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java b/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java index b3e8a4b..7b5324f 100644 --- a/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java +++ b/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java @@ -27,4 +27,12 @@ public interface ScenarioRepository extends MongoRepository { List findByAvailableForProjectsIsNullAndAvailableForApplicationsIsNullAndVisible(String visible); + @Query("{ 'visible': 'Y', 'category': 'RE', " + + " $or: [ " + + " { 'availableForProjects': ObjectId(?0) }, " + + " { 'availableForApplications': ObjectId(?1) } " + + " ] " + + "}") + List findByVisibleAndCategoryAndProjectOrApplication(String projectId, String applicationId); + } diff --git a/src/main/java/com/olympus/hermione/services/ScenarioService.java b/src/main/java/com/olympus/hermione/services/ScenarioService.java index 6104100..1916439 100644 --- a/src/main/java/com/olympus/hermione/services/ScenarioService.java +++ b/src/main/java/com/olympus/hermione/services/ScenarioService.java @@ -12,6 +12,7 @@ import com.olympus.hermione.repository.ScenarioRepository; import com.olympus.hermione.security.entity.User; import com.olympus.model.Project; +import java.util.ArrayList; import java.util.List; import org.bson.types.ObjectId; @@ -64,4 +65,24 @@ public class ScenarioService { return lstScenarios; } + + public List getListScenariosForRE(){ + logger.info("getListProjectByUser function:"); + List lstScenarios = new ArrayList(); + Scenario scenarioDefault = new Scenario(); + scenarioDefault.setName("Default"); + scenarioDefault.setId(""); + try{ + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + lstScenarios = scenarioRepo.findByVisibleAndCategoryAndProjectOrApplication(user.getSelectedProject().getId(), user.getSelectedApplication().getId()); + lstScenarios.add(scenarioDefault); + }catch(Exception e){ + logger.error("Exception ScenarioRepository:", e.getMessage()); + } + + logger.info("getListProjectByUser function:"); + return lstScenarios; + + } }