DnaMatchingTable::templatePath()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App\Tables\Builders;
4
5
use App\Models\DnaMatching;
6
use Illuminate\Database\Eloquent\Builder;
7
use LaravelEnso\Tables\Contracts\Table;
8
9
class DnaMatchingTable implements Table
10
{
11
    protected const TemplatePath = __DIR__.'/../Templates/dnamatching.json';
12
13
    public function query(): Builder
14
    {
15
        $role = \Auth::user()->role_id;
0 ignored issues
show
Bug introduced by
Accessing role_id on the interface Illuminate\Contracts\Auth\Authenticatable suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
16
        $userId = \Auth::user()->id;
0 ignored issues
show
Bug introduced by
Accessing id on the interface Illuminate\Contracts\Auth\Authenticatable suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
17
18
        if (in_array($role, [1, 2])) {
19
            return DnaMatching::selectRaw('
0 ignored issues
show
Bug Best Practice introduced by
The expression return App\Models\DnaMat...gs.largest_cm_segment') could return the type Illuminate\Database\Eloq...gHasThroughRelationship which is incompatible with the type-hinted return Illuminate\Database\Eloquent\Builder. Consider adding an additional type-check to rule them out.
Loading history...
20
            dna_matchings.id, dna_matchings.file1, dna_matchings.file2, dna_matchings.image, dna_matchings.created_at, dna_matchings.match_id, dna_matchings.total_shared_cm, dna_matchings.match_name, dna_matchings.largest_cm_segment');
21
        }
22
23
        return DnaMatching::selectRaw(' dna_matchings.id, dna_matchings.file1,
24
            dna_matchings.file2, dna_matchings.image, dna_matchings.created_at, dna_matchings.largest_cm_segment, dna_matchings.match_name, dna_matchings.total_shared_cm, dna_matchings.match_id')->where('dna_matchings.user_id', $userId)->orderBy('total_shared_cm', 'desc');
25
    }
26
27
    public function templatePath(): string
28
    {
29
        return static::TemplatePath;
30
    }
31
}
32