diff --git a/backend/src/main/java/com/hitcommunications/servermanager/controllers/ServersController.java b/backend/src/main/java/com/hitcommunications/servermanager/controllers/ServersController.java index d564653..9450626 100644 --- a/backend/src/main/java/com/hitcommunications/servermanager/controllers/ServersController.java +++ b/backend/src/main/java/com/hitcommunications/servermanager/controllers/ServersController.java @@ -11,6 +11,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/api/servers") @@ -39,6 +40,11 @@ public class ServersController { return ResponseEntity.ok().body(serversService.getByType(type)); } + @GetMapping("/type") + public ResponseEntity> countAllByType() { + return ResponseEntity.ok().body(serversService.countAllByType()); + } + @GetMapping("/application/{application}") public ResponseEntity> getByApplication(@PathVariable Applications application) { return ResponseEntity.ok().body(serversService.getByApplication(application)); diff --git a/backend/src/main/java/com/hitcommunications/servermanager/repositories/ServersRepository.java b/backend/src/main/java/com/hitcommunications/servermanager/repositories/ServersRepository.java index d0797ae..baa0110 100644 --- a/backend/src/main/java/com/hitcommunications/servermanager/repositories/ServersRepository.java +++ b/backend/src/main/java/com/hitcommunications/servermanager/repositories/ServersRepository.java @@ -13,5 +13,6 @@ public interface ServersRepository extends JpaRepository { List findByType(ServersType type); List findByApplication(Applications application); Optional findByIpAndPort(String ip, Integer port); + Integer countAllByType(ServersType type); } diff --git a/backend/src/main/java/com/hitcommunications/servermanager/services/ServersService.java b/backend/src/main/java/com/hitcommunications/servermanager/services/ServersService.java index c5ffe13..9e0da7b 100644 --- a/backend/src/main/java/com/hitcommunications/servermanager/services/ServersService.java +++ b/backend/src/main/java/com/hitcommunications/servermanager/services/ServersService.java @@ -10,7 +10,9 @@ import com.hitcommunications.servermanager.repositories.ServersRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @RequiredArgsConstructor @@ -48,6 +50,16 @@ public class ServersService { .toList(); } + public Map countAllByType() { + Map response = new HashMap<>(); + + for(ServersType type : ServersType.values()) { + response.put(type, repo.countAllByType(type)); + } + + return response; + } + public List getByApplication(Applications application) { return repo.findByApplication(application) .stream()