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

Builder::buildResults()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 15
rs 9.4285
cc 3
eloc 8
nc 3
nop 1
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