Implemented NodeRepository
This commit is contained in:
parent
7d8f9bd463
commit
425fb71f4c
@ -32,7 +32,7 @@ public class NodeDefinition implements INode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable Boolean isPersist() {
|
public @NotNull Boolean isPersist() {
|
||||||
return persist;
|
return persist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,14 +2,19 @@ package ru.dragonestia.picker.api.impl.repository;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import ru.dragonestia.picker.api.exception.NodeNotFoundException;
|
||||||
import ru.dragonestia.picker.api.impl.RoomPickerClient;
|
import ru.dragonestia.picker.api.impl.RoomPickerClient;
|
||||||
|
import ru.dragonestia.picker.api.impl.util.EnumUtils;
|
||||||
import ru.dragonestia.picker.api.impl.util.RestTemplate;
|
import ru.dragonestia.picker.api.impl.util.RestTemplate;
|
||||||
|
import ru.dragonestia.picker.api.impl.util.type.HttpMethod;
|
||||||
import ru.dragonestia.picker.api.model.node.INode;
|
import ru.dragonestia.picker.api.model.node.INode;
|
||||||
import ru.dragonestia.picker.api.model.node.NodeDefinition;
|
import ru.dragonestia.picker.api.model.node.NodeDefinition;
|
||||||
import ru.dragonestia.picker.api.repository.NodeRepository;
|
import ru.dragonestia.picker.api.repository.NodeRepository;
|
||||||
import ru.dragonestia.picker.api.repository.request.node.FindNodeById;
|
import ru.dragonestia.picker.api.repository.request.node.FindNodeById;
|
||||||
import ru.dragonestia.picker.api.repository.request.node.GetAllNodes;
|
import ru.dragonestia.picker.api.repository.request.node.GetAllNodes;
|
||||||
import ru.dragonestia.picker.api.repository.request.node.RemoveNodesByIds;
|
import ru.dragonestia.picker.api.repository.request.node.RemoveNodesByIds;
|
||||||
|
import ru.dragonestia.picker.api.repository.response.NodeDetailsResponse;
|
||||||
|
import ru.dragonestia.picker.api.repository.response.NodeListResponse;
|
||||||
import ru.dragonestia.picker.api.repository.response.PickedRoomResponse;
|
import ru.dragonestia.picker.api.repository.response.PickedRoomResponse;
|
||||||
import ru.dragonestia.picker.api.repository.type.NodeIdentifier;
|
import ru.dragonestia.picker.api.repository.type.NodeIdentifier;
|
||||||
import ru.dragonestia.picker.api.repository.type.UserIdentifier;
|
import ru.dragonestia.picker.api.repository.type.UserIdentifier;
|
||||||
@ -29,27 +34,42 @@ public class NodeRepositoryImpl implements NodeRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull List<INode> allNodes(@NotNull GetAllNodes data) {
|
public @NotNull List<INode> allNodes(@NotNull GetAllNodes data) {
|
||||||
throw new UnsupportedOperationException("Not implemented");
|
return rest.query("/nodes", HttpMethod.GET, NodeListResponse.class, params -> {
|
||||||
|
params.put("requiredDetails", EnumUtils.enumSetToString(data.getDetails()));
|
||||||
|
}).nodes().stream().map(node -> (INode) node).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Optional<INode> findNodeById(@NotNull FindNodeById data) {
|
public @NotNull Optional<INode> findNodeById(@NotNull FindNodeById data) {
|
||||||
throw new UnsupportedOperationException("Not implemented");
|
try {
|
||||||
|
var response = rest.query("/nodes/" + data.getId(), HttpMethod.GET, NodeDetailsResponse.class, params -> {
|
||||||
|
params.put("requiredDetails", EnumUtils.enumSetToString(data.getDetails()));
|
||||||
|
});
|
||||||
|
return Optional.of(response.node());
|
||||||
|
} catch (NodeNotFoundException ex) {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeNodesById(@NotNull RemoveNodesByIds data) {
|
public void removeNodesById(@NotNull RemoveNodesByIds data) {
|
||||||
throw new UnsupportedOperationException("Not implemented");
|
rest.query("/nodes", HttpMethod.DELETE, params -> {
|
||||||
|
params.put("toDelete", String.join(",", data.getNodeIds()));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeNode(@NotNull INode node) {
|
public void removeNode(@NotNull INode node) {
|
||||||
throw new UnsupportedOperationException("Not implemented");
|
rest.query("/nodes/" + node.getIdentifier(), HttpMethod.DELETE, params -> {});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveNode(@NotNull NodeDefinition definition) {
|
public void saveNode(@NotNull NodeDefinition definition) {
|
||||||
throw new UnsupportedOperationException("Not implemented");
|
rest.query("/nodes", HttpMethod.POST, params -> {
|
||||||
|
params.put("nodeId", definition.getIdentifier());
|
||||||
|
params.put("method", definition.getPickingMethod().name());
|
||||||
|
params.put("persist", Boolean.toString(definition.isPersist()));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user