diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/NodeRepository.java b/api/src/main/java/ru/dragonestia/picker/api/repository/NodeRepository.java index f87366e..20e1424 100644 --- a/api/src/main/java/ru/dragonestia/picker/api/repository/NodeRepository.java +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/NodeRepository.java @@ -11,7 +11,7 @@ import java.util.Set; public interface NodeRepository { - Set ALL_DETAILS = Set.of(); + Set ALL_DETAILS = Set.of(NodeDetails.PERSIST); void register(RNode node, boolean persist) throws InvalidNodeIdentifierException, NodeAlreadyExistException; diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/RoomRepository.java b/api/src/main/java/ru/dragonestia/picker/api/repository/RoomRepository.java index 13fc34c..73a1c80 100644 --- a/api/src/main/java/ru/dragonestia/picker/api/repository/RoomRepository.java +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/RoomRepository.java @@ -11,7 +11,7 @@ import java.util.Set; public interface RoomRepository { - Set ALL_DETAILS = Set.of(RoomDetails.COUNT_USERS); + Set ALL_DETAILS = Set.of(RoomDetails.COUNT_USERS, RoomDetails.PERSIST); void register(RRoom room, boolean persist) throws NodeNotFoundException, InvalidRoomIdentifierException, RoomAlreadyExistException; diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/details/NodeDetails.java b/api/src/main/java/ru/dragonestia/picker/api/repository/details/NodeDetails.java index 5e794ca..b374ec5 100644 --- a/api/src/main/java/ru/dragonestia/picker/api/repository/details/NodeDetails.java +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/details/NodeDetails.java @@ -1,4 +1,5 @@ package ru.dragonestia.picker.api.repository.details; public enum NodeDetails { + PERSIST } diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/details/RoomDetails.java b/api/src/main/java/ru/dragonestia/picker/api/repository/details/RoomDetails.java index a12f663..29e9ee1 100644 --- a/api/src/main/java/ru/dragonestia/picker/api/repository/details/RoomDetails.java +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/details/RoomDetails.java @@ -1,5 +1,6 @@ package ru.dragonestia.picker.api.repository.details; public enum RoomDetails { - COUNT_USERS + COUNT_USERS, + PERSIST } diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/response/type/RNode.java b/api/src/main/java/ru/dragonestia/picker/api/repository/response/type/RNode.java index bfc1812..303a6ec 100644 --- a/api/src/main/java/ru/dragonestia/picker/api/repository/response/type/RNode.java +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/response/type/RNode.java @@ -39,7 +39,7 @@ public class RNode { details.put(detail, value); } - public String getDetails(NodeDetails detail, String value) { + public String getDetails(NodeDetails detail) { return details.get(detail); } diff --git a/app/src/main/java/ru/dragonestia/picker/util/DetailsExtractor.java b/app/src/main/java/ru/dragonestia/picker/util/DetailsExtractor.java index 7e720a8..44a4161 100644 --- a/app/src/main/java/ru/dragonestia/picker/util/DetailsExtractor.java +++ b/app/src/main/java/ru/dragonestia/picker/util/DetailsExtractor.java @@ -29,7 +29,10 @@ public class DetailsExtractor { var response = node.toResponseObject(); for (var detail: details) { - // TODO... + if (detail == NodeDetails.PERSIST) { + response.putDetail(NodeDetails.PERSIST, Boolean.toString(node.persist())); + continue; + } } return response; @@ -42,6 +45,12 @@ public class DetailsExtractor { if (detail == RoomDetails.COUNT_USERS) { var users = Integer.toString(userRepository.usersOf(room).size()); response.details().put(RoomDetails.COUNT_USERS, users); + continue; + } + + if (detail == RoomDetails.PERSIST) { + response.details().put(RoomDetails.PERSIST, Boolean.toString(room.isPersist())); + continue; } }