From f6773c29fae1ffb1ba010a844cdd3971077e7260 Mon Sep 17 00:00:00 2001 From: digrazia2038 <digrazia@2038.it> Date: Thu, 28 Jul 2022 17:42:56 +0200 Subject: [PATCH] Implemented PUBLIC visibility --- .../it/eng/urbanite/dashboard/Runner.java | 100 ++++++++++++++++++ .../dashboard/model/enumeration/MenuType.java | 1 + .../repository/MenuBlockRepository.java | 2 +- .../dashboard/web/MenuBlockResource.java | 8 ++ 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 src/main/java/it/eng/urbanite/dashboard/Runner.java diff --git a/src/main/java/it/eng/urbanite/dashboard/Runner.java b/src/main/java/it/eng/urbanite/dashboard/Runner.java new file mode 100644 index 0000000..0b1d25e --- /dev/null +++ b/src/main/java/it/eng/urbanite/dashboard/Runner.java @@ -0,0 +1,100 @@ +package it.eng.urbanite.dashboard; + +import java.time.Instant; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +import it.eng.urbanite.dashboard.model.enumeration.MenuType; +import it.eng.urbanite.dashboard.service.MenuBlockService; +import it.eng.urbanite.dashboard.service.dto.MenuBlockDTO; +import lombok.extern.slf4j.Slf4j; + +@Component +@Slf4j +public class Runner implements ApplicationRunner { + private final Logger log = LoggerFactory.getLogger(Runner.class); + + @Autowired + private MenuBlockService menuBlockService; + + @Override + public void run(ApplicationArguments args) throws Exception { + // TODO Auto-generated method stub + if (hasRows()) { + log.info("------------------ Start creating menu blocks ------------------"); + try { + initPersonalMenuBlock(); + initSharedMenuBlock(); + initPublicMenuBlock(); + } catch (Throwable e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + log.info("------------------ Menu blocks created ------------------"); + } + + void initPersonalMenuBlock() { +// logger.info("\n"); +// logger.info("------------------ Start inserting pilots ------------------"); + MenuBlockDTO menuBlockDTO = new MenuBlockDTO(); + menuBlockDTO.setId((long) 2000); + menuBlockDTO.setCode("PERSONAL_DASHBOARDS"); + menuBlockDTO.setCreatedBy("waste manager"); + // GET THE USERNAME FOR EACH USER AND CHECK FOR EMPTY FOR THE + // USER!!!!!!!!!!!!!!!!!!! + menuBlockDTO.setCreatedDate(Instant.now()); + menuBlockDTO.setIcon(null); + menuBlockDTO.setLabel("PERSONAL DASHBOARDS"); + menuBlockDTO.setType(MenuType.PERSONAL); + menuBlockService.save(menuBlockDTO); +// logger.info("------------------ End inserting pilots ------------------"); +// logger.info("\n"); + } + + void initSharedMenuBlock() { +// logger.info("\n"); +// logger.info("------------------ Start inserting pilots ------------------"); + MenuBlockDTO menuBlockDTO = new MenuBlockDTO(); + menuBlockDTO.setId((long) 2000); + menuBlockDTO.setCode("SHARED_DASHBOARDS"); + menuBlockDTO.setCreatedBy("waste manager"); + // GET THE USERNAME FOR EACH USER AND CHECK FOR EMPTY FOR THE + // USER!!!!!!!!!!!!!!!!!!! + menuBlockDTO.setCreatedDate(Instant.now()); + menuBlockDTO.setIcon(null); + menuBlockDTO.setLabel("SHARED DASHBOARDS"); + menuBlockDTO.setType(MenuType.SHARED); + menuBlockService.save(menuBlockDTO); +// logger.info("------------------ End inserting pilots ------------------"); +// logger.info("\n"); + } + + void initPublicMenuBlock() { +// logger.info("\n"); +// logger.info("------------------ Start inserting pilots ------------------"); + MenuBlockDTO menuBlockDTO = new MenuBlockDTO(); + menuBlockDTO.setId((long) 2000); + menuBlockDTO.setCode("PUBLIC_DASHBOARDS"); + menuBlockDTO.setCreatedBy("waste manager"); + // GET THE USERNAME FOR EACH USER AND CHECK FOR EMPTY FOR THE + // USER!!!!!!!!!!!!!!!!!!! + menuBlockDTO.setCreatedDate(Instant.now()); + menuBlockDTO.setIcon(null); + menuBlockDTO.setLabel("PUBLIC DASHBOARDS"); + menuBlockDTO.setType(MenuType.PUBLIC); + menuBlockService.save(menuBlockDTO); +// logger.info("------------------ End inserting pilots ------------------"); +// logger.info("\n"); + } + + boolean hasRows() { + log.info("------------------ Checking if there are menu blocks ------------------"); + return menuBlockService.findAll().isEmpty() ? true : false; + } +} \ No newline at end of file diff --git a/src/main/java/it/eng/urbanite/dashboard/model/enumeration/MenuType.java b/src/main/java/it/eng/urbanite/dashboard/model/enumeration/MenuType.java index c576128..0a1e6fa 100644 --- a/src/main/java/it/eng/urbanite/dashboard/model/enumeration/MenuType.java +++ b/src/main/java/it/eng/urbanite/dashboard/model/enumeration/MenuType.java @@ -6,4 +6,5 @@ package it.eng.urbanite.dashboard.model.enumeration; public enum MenuType { SHARED, PERSONAL, + PUBLIC } diff --git a/src/main/java/it/eng/urbanite/dashboard/repository/MenuBlockRepository.java b/src/main/java/it/eng/urbanite/dashboard/repository/MenuBlockRepository.java index 066fd12..4fb867d 100644 --- a/src/main/java/it/eng/urbanite/dashboard/repository/MenuBlockRepository.java +++ b/src/main/java/it/eng/urbanite/dashboard/repository/MenuBlockRepository.java @@ -82,7 +82,7 @@ public interface MenuBlockRepository extends JpaRepository<MenuBlock, Long>, Jpa * @param createdBy * @return List of MenuBlock */ - @Query(nativeQuery=true, value= "SELECT * from menu_block m where 1=1 and ( (m.created_by = :createdBy and m.type='PERSONAL') or m.type='SHARED' ) " ) + @Query(nativeQuery=true, value= "SELECT * from menu_block m where 1=1 and ( (m.created_by = :createdBy and m.type='PERSONAL') or m.type='SHARED' or m.type='PUBLIC' ) " ) List<MenuBlock> findEditable( @Param("createdBy") String createdBy ); diff --git a/src/main/java/it/eng/urbanite/dashboard/web/MenuBlockResource.java b/src/main/java/it/eng/urbanite/dashboard/web/MenuBlockResource.java index 13eefc2..de9c328 100644 --- a/src/main/java/it/eng/urbanite/dashboard/web/MenuBlockResource.java +++ b/src/main/java/it/eng/urbanite/dashboard/web/MenuBlockResource.java @@ -128,10 +128,18 @@ public class MenuBlockResource { List<MenuBlockDTO> list = menuBlockService.findLinkedItems(MenuType.SHARED, createdBy); return ResponseEntity.ok().body(list); } + @GetMapping("/public-menu-blocks") + public ResponseEntity<List<MenuBlockDTO>> getAllPublicMenuBlocks() { + log.debug("REST request to get Shared Linked MenuBlocks"); + String createdBy = SecurityUtils.getCurrentUserLogin().orElse(Constants.SYSTEM); + List<MenuBlockDTO> list = menuBlockService.findLinkedItems(MenuType.SHARED, createdBy); + return ResponseEntity.ok().body(list); + } @GetMapping("/editable-menu-blocks") public ResponseEntity<List<MenuBlockDTO>> getAllEditableMenuBlocks() { log.info("REST request to get Editable (SHARED or PERSONAL created-by user) Linked MenuBlocks"); + log.info("Update: REST request to get SHARED, PERSONAL and PUBLIC FIXED menu blocks created by default by the system"); List<MenuBlockDTO> list = menuBlockService.findEditableBlocks(); return ResponseEntity.ok().body(list); } -- GitLab