Completed
Pull Request — master (#1017)
by Tim
05:07
created

Builder   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 4
c 1
b 0
f 1
lcom 0
cbo 3
dl 0
loc 39
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A buildResultSet() 0 7 1
A buildResults() 0 15 3
1
<?php
2
3
namespace Elastica\ResultSet;
4
5
use Elastica\Query;
6
use Elastica\Response;
7
use Elastica\Result;
8
use Elastica\ResultSet;
9
10
class Builder implements BuilderInterface
11
{
12
    /**
13
     * Builds a ResultSet for a given Response.
14
     *
15
     * @param Response $response
16
     * @param Query $query
17
     * @return ResultSet
18
     */
19
    public function buildResultSet(Response $response, Query $query)
20
    {
21
        $results = $this->buildResults($response);
22
        $resultSet = new ResultSet($response, $query, $results);
23
24
        return $resultSet;
25
    }
26
27
    /**
28
     * Builds individual result objects.
29
     *
30
     * @param Response $response
31
     * @return Result[]
32
     */
33
    private function buildResults(Response $response)
34
    {
35
        $data = $response->getData();
36
        $results = [];
37
38
        if (!isset($data['hits']['hits'])) {
39
            return $results;
40
        }
41
42
        foreach ($data['hits']['hits'] as $hit) {
43
            $results[] = new Result($hit);
44
        }
45
46
        return $results;
47
    }
48
}
49