Added PERSIST detail for nodes and rooms

This commit is contained in:
Andrey Terentev 2024-02-28 13:01:35 +07:00 committed by Andrey Terentev
parent 268853b75e
commit 68efccbe79
6 changed files with 16 additions and 5 deletions

View File

@ -11,7 +11,7 @@ import java.util.Set;
public interface NodeRepository {
Set<NodeDetails> ALL_DETAILS = Set.of();
Set<NodeDetails> ALL_DETAILS = Set.of(NodeDetails.PERSIST);
void register(RNode node, boolean persist) throws InvalidNodeIdentifierException, NodeAlreadyExistException;

View File

@ -11,7 +11,7 @@ import java.util.Set;
public interface RoomRepository {
Set<RoomDetails> ALL_DETAILS = Set.of(RoomDetails.COUNT_USERS);
Set<RoomDetails> ALL_DETAILS = Set.of(RoomDetails.COUNT_USERS, RoomDetails.PERSIST);
void register(RRoom room, boolean persist) throws NodeNotFoundException, InvalidRoomIdentifierException, RoomAlreadyExistException;

View File

@ -1,4 +1,5 @@
package ru.dragonestia.picker.api.repository.details;
public enum NodeDetails {
PERSIST
}

View File

@ -1,5 +1,6 @@
package ru.dragonestia.picker.api.repository.details;
public enum RoomDetails {
COUNT_USERS
COUNT_USERS,
PERSIST
}

View File

@ -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);
}

View File

@ -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;
}
}