|
@@ -3,19 +3,25 @@ package com.remy.graphql.resolvers.dataloader;
|
|
|
import com.remy.common.module.GoodsDTO;
|
|
import com.remy.common.module.GoodsDTO;
|
|
|
import com.remy.common.module.OrderDTO;
|
|
import com.remy.common.module.OrderDTO;
|
|
|
import com.remy.common.module.UserDTO;
|
|
import com.remy.common.module.UserDTO;
|
|
|
|
|
+import com.remy.graphql.evn.RestAPIEnv;
|
|
|
import graphql.kickstart.execution.context.GraphQLContext;
|
|
import graphql.kickstart.execution.context.GraphQLContext;
|
|
|
import graphql.kickstart.tools.GraphQLResolver;
|
|
import graphql.kickstart.tools.GraphQLResolver;
|
|
|
import graphql.schema.DataFetchingEnvironment;
|
|
import graphql.schema.DataFetchingEnvironment;
|
|
|
import org.dataloader.DataLoader;
|
|
import org.dataloader.DataLoader;
|
|
|
import org.dataloader.DataLoaderRegistry;
|
|
import org.dataloader.DataLoaderRegistry;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
|
|
|
|
@Component
|
|
@Component
|
|
|
public class OrderDataLoaderResolver implements GraphQLResolver<OrderDTO> {
|
|
public class OrderDataLoaderResolver implements GraphQLResolver<OrderDTO> {
|
|
|
|
|
|
|
|
- public CompletableFuture<GoodsDTO> goods(OrderDTO orderDTO, DataFetchingEnvironment env){
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ RestAPIEnv apiEnv;
|
|
|
|
|
+
|
|
|
|
|
+ public CompletableFuture<GoodsDTO> goods(OrderDTO orderDTO, DataFetchingEnvironment env) {
|
|
|
DataLoaderRegistry registry = ((GraphQLContext) env.getContext()).getDataLoaderRegistry();
|
|
DataLoaderRegistry registry = ((GraphQLContext) env.getContext()).getDataLoaderRegistry();
|
|
|
DataLoader<String, GoodsDTO> goodsDataLoader = registry.getDataLoader("goodsDataLoader");
|
|
DataLoader<String, GoodsDTO> goodsDataLoader = registry.getDataLoader("goodsDataLoader");
|
|
|
if (goodsDataLoader != null) {
|
|
if (goodsDataLoader != null) {
|
|
@@ -32,4 +38,11 @@ public class OrderDataLoaderResolver implements GraphQLResolver<OrderDTO> {
|
|
|
}
|
|
}
|
|
|
throw new IllegalStateException("No user data loader found");
|
|
throw new IllegalStateException("No user data loader found");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// public CompletableFuture<UserDTO> user(OrderDTO orderDTO) {
|
|
|
|
|
+// return CompletableFuture.supplyAsync(() ->
|
|
|
|
|
+// new RestTemplate().getForObject(apiEnv.getUsersEndpoint() + orderDTO.getUserID(), UserDTO.class)
|
|
|
|
|
+// );
|
|
|
|
|
+// }
|
|
|
}
|
|
}
|