public InstrumentationExecutionParameters(ExecutionInput executionInput, GraphQLSchema schema, InstrumentationState instrumentationState) { this.executionInput = executionInput; this.query = executionInput.getQuery(); this.operation = executionInput.getOperationName(); this.context = executionInput.getContext(); this.variables = executionInput.getVariables() != null ? executionInput.getVariables() : Collections.emptyMap(); this.instrumentationState = instrumentationState; this.schema = schema; }
public InstrumentationExecutionParameters(ExecutionInput executionInput, GraphQLSchema schema, InstrumentationState instrumentationState) { this.executionInput = executionInput; this.query = executionInput.getQuery(); this.operation = executionInput.getOperationName(); this.context = executionInput.getContext(); this.variables = executionInput.getVariables() != null ? executionInput.getVariables() : Collections.emptyMap(); this.instrumentationState = instrumentationState; this.schema = schema; }
private CompletableFuture<ExecutionResult> execute(ExecutionInput executionInput, Document document, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { String query = executionInput.getQuery(); String operationName = executionInput.getOperationName(); Object context = executionInput.getContext(); Execution execution = new Execution(); ExecutionId executionId = idProvider.provide(query, operationName, context); log.debug("Executing '{}'. operation name: '{}'. query: '{}'. variables '{}'", executionId, executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables()); CompletableFuture<ExecutionResult> future = execution.execute(executionStrategy, document, graphQLSchema, executionId, executionInput, instrumentationState); future = future.whenComplete((result, throwable) -> { if (throwable != null) { log.error(String.format("Execution '%s' threw exception when executing : query : '%s'. variables '%s'", executionId, executionInput.getQuery(), executionInput.getVariables()), throwable); } else { int errorCount = result.getErrors().size(); if (errorCount > 0) { log.debug("Execution '{}' completed with '{}' errors", executionId, errorCount); } else { log.debug("Execution '{}' completed with zero errors", executionId); } } }); return future; }
private CompletableFuture<ExecutionResult> execute(ExecutionInput executionInput, Document document, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { String query = executionInput.getQuery(); String operationName = executionInput.getOperationName(); Object context = executionInput.getContext(); Execution execution = new Execution(queryStrategy, mutationStrategy, subscriptionStrategy, instrumentation); ExecutionId executionId = idProvider.provide(query, operationName, context); log.debug("Executing '{}'. operation name: '{}'. query: '{}'. variables '{}'", executionId, executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables()); CompletableFuture<ExecutionResult> future = execution.execute(document, graphQLSchema, executionId, executionInput, instrumentationState); future = future.whenComplete((result, throwable) -> { if (throwable != null) { log.error(String.format("Execution '%s' threw exception when executing : query : '%s'. variables '%s'", executionId, executionInput.getQuery(), executionInput.getVariables()), throwable); } else { int errorCount = result.getErrors().size(); if (errorCount > 0) { log.debug("Execution '{}' completed with '{}' errors", executionId, errorCount); } else { log.debug("Execution '{}' completed with zero errors", executionId); } } }); return future; }
log.debug("Executing request. operation name: '{}'. query: '{}'. variables '{}'", executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables());
log.debug("Executing request. operation name: '{}'. query: '{}'. variables '{}'", executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables());
public CompletableFuture<ExecutionResult> execute(Document document, GraphQLSchema graphQLSchema, ExecutionId executionId, ExecutionInput executionInput, InstrumentationState instrumentationState) { NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); Map<String, FragmentDefinition> fragmentsByName = getOperationResult.fragmentsByName; OperationDefinition operationDefinition = getOperationResult.operationDefinition;
InstrumentationState instrumentationState) { NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); Map<String, FragmentDefinition> fragmentsByName = getOperationResult.fragmentsByName; OperationDefinition operationDefinition = getOperationResult.operationDefinition;
public InstrumentationExecutionParameters(ExecutionInput executionInput, GraphQLSchema schema, InstrumentationState instrumentationState) { this.executionInput = executionInput; this.query = executionInput.getQuery(); this.operation = executionInput.getOperationName(); this.context = executionInput.getContext(); this.variables = executionInput.getVariables() != null ? executionInput.getVariables() : Collections.emptyMap(); this.instrumentationState = instrumentationState; this.schema = schema; }
public InstrumentationExecutionParameters(ExecutionInput executionInput, GraphQLSchema schema, InstrumentationState instrumentationState) { this.executionInput = executionInput; this.query = executionInput.getQuery(); this.operation = executionInput.getOperationName(); this.context = executionInput.getContext(); this.variables = executionInput.getVariables() != null ? executionInput.getVariables() : Collections.emptyMap(); this.instrumentationState = instrumentationState; this.schema = schema; }
private CompletableFuture<ExecutionResult> execute(ExecutionInput executionInput, Document document, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { String query = executionInput.getQuery(); String operationName = executionInput.getOperationName(); Object context = executionInput.getContext(); Execution execution = new Execution(); ExecutionId executionId = idProvider.provide(query, operationName, context); log.debug("Executing '{}'. operation name: '{}'. query: '{}'. variables '{}'", executionId, executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables()); CompletableFuture<ExecutionResult> future = execution.execute(executionStrategy, document, graphQLSchema, executionId, executionInput, instrumentationState); future = future.whenComplete((result, throwable) -> { if (throwable != null) { log.error(String.format("Execution '%s' threw exception when executing : query : '%s'. variables '%s'", executionId, executionInput.getQuery(), executionInput.getVariables()), throwable); } else { int errorCount = result.getErrors().size(); if (errorCount > 0) { log.debug("Execution '{}' completed with '{}' errors", executionId, errorCount); } else { log.debug("Execution '{}' completed with zero errors", executionId); } } }); return future; }
private CompletableFuture<ExecutionResult> execute(ExecutionInput executionInput, Document document, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { String query = executionInput.getQuery(); String operationName = executionInput.getOperationName(); Object context = executionInput.getContext(); Execution execution = new Execution(queryStrategy, mutationStrategy, subscriptionStrategy, instrumentation); ExecutionId executionId = idProvider.provide(query, operationName, context); log.debug("Executing '{}'. operation name: '{}'. query: '{}'. variables '{}'", executionId, executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables()); CompletableFuture<ExecutionResult> future = execution.execute(document, graphQLSchema, executionId, executionInput, instrumentationState); future = future.whenComplete((result, throwable) -> { if (throwable != null) { log.error(String.format("Execution '%s' threw exception when executing : query : '%s'. variables '%s'", executionId, executionInput.getQuery(), executionInput.getVariables()), throwable); } else { int errorCount = result.getErrors().size(); if (errorCount > 0) { log.debug("Execution '{}' completed with '{}' errors", executionId, errorCount); } else { log.debug("Execution '{}' completed with zero errors", executionId); } } }); return future; }
log.debug("Executing request. operation name: '{}'. query: '{}'. variables '{}'", executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables());
log.debug("Executing request. operation name: '{}'. query: '{}'. variables '{}'", executionInput.getOperationName(), executionInput.getQuery(), executionInput.getVariables());
@Test public void testPostRequest() throws Exception { Map<String, Object> request = new LinkedHashMap<>(); Map<String, Object> variables = new LinkedHashMap<>(); variables.put("variable", "variableValue"); String query = "query myQuery {foo}"; request.put("query", query); request.put("variables", variables); String operationName = "myQuery"; request.put("operationName", operationName); ExecutionResultImpl executionResult = ExecutionResultImpl.newExecutionResult() .data("bar") .build(); CompletableFuture cf = CompletableFuture.completedFuture(executionResult); ArgumentCaptor<ExecutionInput> captor = ArgumentCaptor.forClass(ExecutionInput.class); Mockito.when(graphql.executeAsync(captor.capture())).thenReturn(cf); client.post().uri("/graphql") .body(Mono.just(request), Map.class) .accept(MediaType.APPLICATION_JSON_UTF8) .exchange() .expectStatus().isOk() .expectBody() .jsonPath("data").isEqualTo("bar"); assertThat(captor.getAllValues().size(), is(1)); assertThat(captor.getValue().getQuery(), is(query)); assertThat(captor.getValue().getVariables(), is(variables)); assertThat(captor.getValue().getOperationName(), is(operationName)); }
@Test public void testGetRequest() throws Exception { String variablesJson = "{\"variable\":\"variableValue\"}"; String variablesValue = URLEncoder.encode(variablesJson, "UTF-8"); String query = "query myQuery {foo}"; String queryString = URLEncoder.encode(query, "UTF-8"); String operationName = "myQuery"; ExecutionResultImpl executionResult = ExecutionResultImpl.newExecutionResult() .data("bar") .build(); CompletableFuture cf = CompletableFuture.completedFuture(executionResult); ArgumentCaptor<ExecutionInput> captor = ArgumentCaptor.forClass(ExecutionInput.class); Mockito.when(graphql.executeAsync(captor.capture())).thenReturn(cf); client.get().uri(uriBuilder -> uriBuilder.path("/graphql") .queryParam("variables", variablesValue) .queryParam("query", queryString) .queryParam("operationName", operationName) .build(variablesJson, queryString)) .accept(MediaType.APPLICATION_JSON_UTF8) .exchange() .expectStatus().isOk() .expectBody() .jsonPath("data").isEqualTo("bar"); assertThat(captor.getAllValues().size(), is(1)); Map<String, Object> variables = new LinkedHashMap<>(); variables.put("variable", "variableValue"); assertThat(captor.getValue().getQuery(), is(query)); assertThat(captor.getValue().getVariables(), is(variables)); assertThat(captor.getValue().getOperationName(), is(operationName)); }
assertThat(captor.getValue().getOperationName(), is(operationName));
@Test public void testGetRequest() throws Exception { String variablesJson = "{\"variable\":\"variableValue\"}"; String query = "query myQuery {foo}"; String operationName = "myQuery"; ExecutionResultImpl executionResult = ExecutionResultImpl.newExecutionResult() .data("bar") .build(); CompletableFuture cf = CompletableFuture.completedFuture(executionResult); ArgumentCaptor<ExecutionInput> captor = ArgumentCaptor.forClass(ExecutionInput.class); Mockito.when(graphql.executeAsync(captor.capture())).thenReturn(cf); MvcResult mvcResult = this.mockMvc.perform(get("/graphql") .param("query", query) .param("variables", variablesJson) .param("operationName", operationName)) .andExpect(status().isOk()) .andExpect(request().asyncStarted()) .andReturn(); this.mockMvc.perform(asyncDispatch(mvcResult)) .andDo(print()).andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andExpect(jsonPath("data", is("bar"))) .andReturn(); assertThat(captor.getAllValues().size(), is(1)); Map<String, Object> variables = new LinkedHashMap<>(); variables.put("variable", "variableValue"); assertThat(captor.getValue().getQuery(), is(query)); assertThat(captor.getValue().getVariables(), is(variables)); assertThat(captor.getValue().getOperationName(), is(operationName)); }
public CompletableFuture<ExecutionResult> execute(Document document, GraphQLSchema graphQLSchema, ExecutionId executionId, ExecutionInput executionInput, InstrumentationState instrumentationState) { NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); Map<String, FragmentDefinition> fragmentsByName = getOperationResult.fragmentsByName; OperationDefinition operationDefinition = getOperationResult.operationDefinition;
InstrumentationState instrumentationState) { NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); Map<String, FragmentDefinition> fragmentsByName = getOperationResult.fragmentsByName; OperationDefinition operationDefinition = getOperationResult.operationDefinition;