Completed
Push — master ( 825d81...9c7056 )
by Maxime
08:49
created

Localable::scopeLocale()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
nc 4
nop 3
dl 0
loc 9
ccs 0
cts 8
cp 0
crap 12
rs 9.9666
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: mfrancois
5
 * Date: 12/07/2018
6
 * Time: 15:30
7
 */
8
9
namespace Distilleries\Contentful\Models\Traits;
10
11
12
use Illuminate\Database\Eloquent\Builder;
13
14
trait Localable
15
{
16
    // --------------------------------------------------------------------------------
17
    // --------------------------------------------------------------------------------
18
    // --------------------------------------------------------------------------------
19
20
    /**
21
     * Scope a query to a given locale.
22
     *
23
     * @param  \Illuminate\Database\Eloquent\Builder  $query
24
     * @param  string  $locale
25
     * @param  string  $country
26
     * @return \Illuminate\Database\Eloquent\Builder
27
     */
28
    public function scopeLocale($query, string $locale = '',string $country='') : Builder
29
    {
30
        $locale = ! empty($locale) ? $locale : Locale::getAppOrDefaultLocale();
31
        $country = ! empty($country) ? $country : Locale::getAppOrDefaultCountry();
32
33
        return $query
34
            ->whereRaw('LOWER(country) LIKE LOWER("' . $country . '")')
35
            ->whereRaw('LOWER(locale) LIKE LOWER("' . $locale . '")');
36
    }
37
38
}