Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — master (#151)
by Jérémiah
08:00
created

GraphController   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 11
c 1
b 0
f 0
lcom 1
cbo 7
dl 0
loc 70
ccs 40
cts 40
cp 1
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A endpointAction() 0 4 1
A batchEndpointAction() 0 4 1
B createResponse() 0 29 6
A processBatchQuery() 0 19 2
A processNormalQuery() 0 7 1
1
<?php
2
3
/*
4
 * This file is part of the OverblogGraphQLBundle package.
5
 *
6
 * (c) Overblog <http://github.com/overblog/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Overblog\GraphQLBundle\Controller;
13
14
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
15
use Symfony\Component\HttpFoundation\JsonResponse;
16
use Symfony\Component\HttpFoundation\Request;
17
use Symfony\Component\HttpFoundation\Response;
18
19
class GraphController extends Controller
20
{
21 25
    public function endpointAction(Request $request, $schemaName = null)
22
    {
23 25
        return $this->createResponse($request, $schemaName, false);
24
    }
25
26 6
    public function batchEndpointAction(Request $request, $schemaName = null)
27
    {
28 6
        return $this->createResponse($request, $schemaName, true);
29
    }
30
31 31
    private function createResponse(Request $request, $schemaName, $batched)
32
    {
33
        if (
34 31
            $this->container->getParameter('overblog_graphql.handle_cors_preflight_options')
35 31
            && $request->headers->has('Origin')
36 31
            && 'OPTIONS' === $request->getMethod()
37 31
        ) {
38 1
            $response = new Response('', 200);
39 1
            $response->headers->set('Access-Control-Allow-Origin', $request->headers->get('Origin'));
40 1
            $response->headers->set('Access-Control-Allow-Credentials', 'true');
41 1
            $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Authorization');
42 1
            $response->headers->set('Access-Control-Allow-Methods', 'OPTIONS, GET, POST');
43 1
            $response->headers->set('Access-Control-Max-Age', 3600);
44
45 1
            return $response;
46
        }
47
48 30
        if (!in_array($request->getMethod(), ['POST', 'GET'])) {
49 1
            return new Response('', 405);
50
        }
51
52 29
        if ($batched) {
53 6
            $payload = $this->processBatchQuery($request, $schemaName);
54 2
        } else {
55 23
            $payload = $this->processNormalQuery($request, $schemaName);
56
        }
57
58 20
        return new JsonResponse($payload, 200);
59
    }
60
61 6
    private function processBatchQuery(Request $request, $schemaName = null)
62
    {
63 6
        $queries = $this->get('overblog_graphql.request_batch_parser')->parse($request);
64 2
        $payloads = [];
65
66 2
        foreach ($queries as $query) {
67 2
            $payloadResult = $this->get('overblog_graphql.request_executor')->execute(
68
                [
69 2
                    'query' => $query['query'],
70 2
                    'variables' => $query['variables'],
71 2
                ],
72 2
                [],
73
                $schemaName
74 2
            );
75 2
            $payloads[] = ['id' => $query['id'], 'payload' => $payloadResult->toArray()];
76 2
        }
77
78 2
        return $payloads;
79
    }
80
81 23
    private function processNormalQuery(Request $request, $schemaName = null)
82
    {
83 23
        $params = $this->get('overblog_graphql.request_parser')->parse($request);
84 19
        $data = $this->get('overblog_graphql.request_executor')->execute($params, [], $schemaName)->toArray();
85
86 18
        return $data;
87
    }
88
}
89