Completed
Pull Request — 8.x-3.x (#525)
by Philipp
02:33
created

RequestController::handleBatchRequest()   C

Complexity

Conditions 7
Paths 4

Size

Total Lines 84
Code Lines 46

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 46
nc 4
nop 2
dl 0
loc 84
rs 6.5389
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Drupal\graphql\Controller;
4
5
use Drupal\Core\Cache\CacheableJsonResponse;
6
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
7
use Drupal\graphql\GraphQL\Execution\QueryProcessor;
8
use Symfony\Component\DependencyInjection\ContainerInterface;
9
10
/**
11
 * Handles GraphQL requests.
12
 */
13
class RequestController implements ContainerInjectionInterface {
14
15
  /**
16
   * The query processor.
17
   *
18
   * @var \Drupal\graphql\GraphQL\Execution\QueryProcessor
19
   */
20
  protected $processor;
21
22
  /**
23
   * The service configuration parameters.
24
   *
25
   * @var array
26
   */
27
  protected $parameters;
28
29
  /**
30
   * {@inheritdoc}
31
   */
32
  public static function create(ContainerInterface $container) {
33
    return new static(
34
      $container->get('graphql.query_processor'),
35
      $container->getParameter('graphql.config')
36
    );
37
  }
38
39
  /**
40
   * RequestController constructor.
41
   *
42
   * @param \Drupal\graphql\GraphQL\Execution\QueryProcessor $processor
43
   *   The query processor.
44
   * @param array $parameters
45
   *   The service configuration parameters.
46
   */
47
  public function __construct(QueryProcessor $processor, array $parameters) {
48
    $this->processor = $processor;
49
    $this->parameters = $parameters;
50
  }
51
52
  /**
53
   * Handles graphql requests.
54
   *
55
   * @param string $schema
56
   *   The name of the schema.
57
   * @param \GraphQL\Server\OperationParams|\GraphQL\Server\OperationParams[] $operations
58
   *   The graphql operation(s) to execute.
59
   *
60
   * @return \Drupal\Core\Cache\CacheableJsonResponse
61
   *   The JSON formatted response.
62
   */
63
  public function handleRequest($schema, $operations) {
64
    $debug = !empty($this->parameters['development']);
65
    $result = $this->processor->processQuery($schema, $operations, NULL, $debug);
66
    $response = new CacheableJsonResponse($result);
67
    $response->addCacheableDependency($result);
68
    return $response;
69
  }
70
}
71