From 1b21a4dd27b07c52dd5f310a8f0eba1233e480c8 Mon Sep 17 00:00:00 2001 From: Florinda Date: Tue, 17 Dec 2024 11:13:08 +0100 Subject: [PATCH 1/3] RE Single Class picklist RE scenarios --- .../controllers/ScenarioController.java | 5 +++++ .../com/olympus/hermione/models/Scenario.java | 2 +- .../repository/ScenarioRepository.java | 8 +++++++ .../hermione/services/ScenarioService.java | 21 +++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) 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; + + } } From 0cd74a4673f2e28b62ba8ca38b66fdf69b15988d Mon Sep 17 00:00:00 2001 From: Florinda Date: Tue, 17 Dec 2024 11:13:43 +0100 Subject: [PATCH 2/3] upate rating --- .../controllers/ExecutionController.java | 14 ++++++++++---- .../services/ScenarioExecutionService.java | 18 +++++++++++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/olympus/hermione/controllers/ExecutionController.java b/src/main/java/com/olympus/hermione/controllers/ExecutionController.java index 87ba48a..0ba2ebf 100644 --- a/src/main/java/com/olympus/hermione/controllers/ExecutionController.java +++ b/src/main/java/com/olympus/hermione/controllers/ExecutionController.java @@ -24,9 +24,15 @@ public class ExecutionController { return scenarioExecutionRepository.findById(id).get(); } - @PostMapping("/updateRating") - public String updateScenarioExecRating(@RequestBody ScenarioExecution scenarioExecution){ - String result = scenarioExecutionService.updateRating(scenarioExecution); + // @PostMapping("/updateRating") + // public String updateScenarioExecRating(@RequestBody ScenarioExecution scenarioExecution){ + // String result = scenarioExecutionService.updateRating2(scenarioExecution); + // return result; + // } + + @GetMapping("/updateRating") + public String updateScenarioExecRating(@RequestParam String id, @RequestParam String rating){ + String result = scenarioExecutionService.updateRating(id, rating); return result; - } + } } diff --git a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java index 81dce3e..b3c1152 100644 --- a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java +++ b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java @@ -375,7 +375,7 @@ public class ScenarioExecutionService { } - public String updateRating(ScenarioExecution scenaExec){ + public String updateRating2(ScenarioExecution scenaExec){ logger.info("updateRating function:"); String result = "KO"; try{ @@ -388,4 +388,20 @@ public class ScenarioExecutionService { return result; } + + public String updateRating(String id, String rating){ + logger.info("updateRating function:"); + String result = "KO"; + try{ + Optional o_scenarioExecution = scenarioExecutionRepository.findById(id); + if(o_scenarioExecution.isPresent()){ + o_scenarioExecution.get().setRating(rating); + scenarioExecutionRepository.save(o_scenarioExecution.get()); + result = "OK"; + } + }catch(Exception e){ + logger.error("Exception in updateRating: {}", e.getMessage()); + } + return result; + } } From 43f476bf4fd1dc67b24a72e5bd2fb05129db3a7f Mon Sep 17 00:00:00 2001 From: Florinda Date: Wed, 18 Dec 2024 14:46:16 +0100 Subject: [PATCH 3/3] add FileController --- .../hermione/controllers/FileController.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/com/olympus/hermione/controllers/FileController.java diff --git a/src/main/java/com/olympus/hermione/controllers/FileController.java b/src/main/java/com/olympus/hermione/controllers/FileController.java new file mode 100644 index 0000000..9f83ea4 --- /dev/null +++ b/src/main/java/com/olympus/hermione/controllers/FileController.java @@ -0,0 +1,58 @@ +package com.olympus.hermione.controllers; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import com.olympus.dto.FileUploadDTO; +import com.olympus.model.apollo.KSDocument; +import com.olympus.model.apollo.KSIngestionInfo; + +@RestController +public class FileController { + + private static final String UPLOAD_DIR = "C:\\mnt\\hermione_storage\\documents\\file_input_scenarios\\"; + + @PostMapping("/uploadListFiles") + public ResponseEntity uploadFiles( + @RequestParam("MultiFileUpload") List files) { + + long timestamp = System.currentTimeMillis(); + int randomNum = new Random().nextInt(1000); // Numero random tra 0 e 999 + + // Crea un nome di cartella basato sulla data e sul numero randomico + String folderName = timestamp + "_" + randomNum; + File folder = new File(UPLOAD_DIR + folderName); + + if (!folder.exists()) { + folder.mkdirs(); // Crea la cartella se non esiste + } + + try { + // Salva ogni file nella cartella + for (MultipartFile file : files) { + // Path path = Paths.get(UPLOAD_DIR + file.getOriginalFilename()); + // file.transferTo(path); + String fileName = file.getOriginalFilename(); + File destFile = new File(folder, fileName); + file.transferTo(destFile); + } + return ResponseEntity.ok(folderName); + + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Error uploading files: " + e.getMessage()); + } + } +}