Completed
Push — master ( e4e0c2...03bb96 )
by Nenad
10s
created

TNTSearchScoutServiceProvider::boot()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
cc 2
eloc 12
nc 2
nop 0
1
<?php
2
3
namespace TeamTNT\Scout;
4
5
use Illuminate\Support\ServiceProvider;
6
use Laravel\Scout\EngineManager;
7
use TeamTNT\Scout\Console\ImportCommand;
8
use TeamTNT\TNTSearch\TNTSearch;
9
10
class TNTSearchScoutServiceProvider extends ServiceProvider
11
{
12
    /**
13
     * Bootstrap any application services.
14
     *
15
     * @return void
16
     */
17
    public function boot()
18
    {
19
        $this->app[EngineManager::class]->extend('tntsearch', function () {
20
            $tnt = new TNTSearch();
21
            $driver = config('database.default');
22
            $config = config('scout.tntsearch') + config("database.connections.$driver");
23
24
25
            $tnt->loadConfig($config);
26
            $tnt->setDatabaseHandle(app('db')->connection()->getPdo());
27
            $this->setFuzziness($tnt);
28
29
            return new Engines\TNTSearchEngine($tnt);
30
        });
31
32
        if ($this->app->runningInConsole()) {
0 ignored issues
show
Bug introduced by
The method runningInConsole() does not seem to exist on object<Illuminate\Contra...Foundation\Application>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
33
            $this->commands([
34
                ImportCommand::class,
35
            ]);
36
        }
37
    }
38
39
    private function setFuzziness($tnt)
40
    {
41
        $fuzziness = config('scout.tntsearch.fuzziness');
42
        $prefix_length = config('scout.tntsearch.fuzzy.prefix_length');
43
        $max_expansions = config('scout.tntsearch.fuzzy.max_expansions');
44
        $distance = config('scout.tntsearch.fuzzy.distance');
45
46
47
        $tnt->fuzziness = isset($fuzziness) ? $fuzziness : $tnt->fuzziness;
48
        $tnt->fuzzy_prefix_length = isset($prefix_length) ? $prefix_length : $tnt->fuzzy_prefix_length;
49
        $tnt->fuzzy_max_expansions = isset($max_expansions) ? $max_expansions : $tnt->fuzzy_max_expansions;
50
        $tnt->fuzzy_distance = isset($distance) ? $distance : $tnt->fuzzy_distance;
51
    }
52
}
53