Test Failed
Push — develop ( e570c6...984de0 )
by Nuno
03:53
created

AlgoliaEngine::map()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 17
ccs 0
cts 10
cp 0
rs 9.9
c 0
b 0
f 0
cc 3
nc 2
nop 3
crap 12
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * This file is part of Scout Extended.
7
 *
8
 * (c) Algolia Team <[email protected]>
9
 *
10
 *  For the full copyright and license information, please view the LICENSE
11
 *  file that was distributed with this source code.
12
 */
13
14
namespace Algolia\ScoutExtended\Engines;
15
16
use Laravel\Scout\Builder;
17
use Illuminate\Support\Collection;
18
use Laravel\Scout\Engines\AlgoliaEngine as BaseAlgoliaEngine;
19
20
class AlgoliaEngine extends BaseAlgoliaEngine
21
{
22
    /**
23
     * {@inheritdoc}
24
     */
25
    public function map(Builder $builder, $results, $model): Collection
26
    {
27
        if (count($results['hits']) === 0) {
28
            return collect();
29
        }
30
31
        $models = $model->getScoutModelsByIds(
32
            $builder, collect($results['hits'])->pluck('objectID')->values()->all()
33
        )->keyBy(function ($model) {
34
            return $model->getScoutKey();
35
        })->map->getModel();
36
37
        return collect($results['hits'])->map(function ($hit) use ($models) {
38
            if (isset($models[$hit['objectID']])) {
39
                return $models[$hit['objectID']];
40
            }
41
        })->filter()->values();
42
    }
43
}
44