implemented all graphql query methods
This commit is contained in:
parent
bff4db3e0f
commit
cf9271cf2b
@ -1,8 +1,11 @@
|
|||||||
package ru.dragonestia.picker.controller.graphql;
|
package ru.dragonestia.picker.controller.graphql;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.springframework.graphql.data.method.annotation.Argument;
|
||||||
import org.springframework.graphql.data.method.annotation.QueryMapping;
|
import org.springframework.graphql.data.method.annotation.QueryMapping;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import ru.dragonestia.picker.controller.graphql.entity.EntityNode;
|
import ru.dragonestia.picker.controller.graphql.entity.EntityNode;
|
||||||
|
import ru.dragonestia.picker.controller.graphql.entity.EntityRoom;
|
||||||
import ru.dragonestia.picker.controller.graphql.entity.type.DataProvider;
|
import ru.dragonestia.picker.controller.graphql.entity.type.DataProvider;
|
||||||
import ru.dragonestia.picker.service.NodeService;
|
import ru.dragonestia.picker.service.NodeService;
|
||||||
import ru.dragonestia.picker.service.RoomService;
|
import ru.dragonestia.picker.service.RoomService;
|
||||||
@ -31,4 +34,31 @@ public class GraphqlController {
|
|||||||
.map(node -> new EntityNode(node, dataProvider))
|
.map(node -> new EntityNode(node, dataProvider))
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@QueryMapping
|
||||||
|
EntityNode nodeById(@Argument String id) {
|
||||||
|
return nodeService.find(id)
|
||||||
|
.map(node -> new EntityNode(node, dataProvider))
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@QueryMapping
|
||||||
|
List<EntityRoom> allRooms(@NotNull String nodeId) {
|
||||||
|
var node = nodeService.find(nodeId).orElse(null);
|
||||||
|
if (node == null) return null;
|
||||||
|
|
||||||
|
return roomService.all(node).stream()
|
||||||
|
.map(room -> new EntityRoom(room, dataProvider))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@QueryMapping
|
||||||
|
EntityRoom roomById(@Argument String nodeId, @NotNull String roomId) {
|
||||||
|
var node = nodeService.find(nodeId).orElse(null);
|
||||||
|
if (node == null) return null;
|
||||||
|
|
||||||
|
return roomService.find(node, roomId)
|
||||||
|
.map(room -> new EntityRoom(room, dataProvider))
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,6 @@ type Query {
|
|||||||
nodeById(id: String!): Node
|
nodeById(id: String!): Node
|
||||||
allRooms(nodeId: String!): [Room]
|
allRooms(nodeId: String!): [Room]
|
||||||
roomById(nodeId: String!, roomId: String!): Room
|
roomById(nodeId: String!, roomId: String!): Room
|
||||||
roomUsers(nodeId: String!, roomId: String!): [User]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Node {
|
type Node {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user