Passed
Push — master ( 43fcfe...3bc5dd )
by Marc
06:52
created

AggregationTrait   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 7
eloc 8
dl 0
loc 35
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A group() 0 3 1
A count() 0 3 1
A ungroup() 0 3 1
A max() 0 3 1
A sum() 0 3 1
A min() 0 3 1
A avg() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace TBolier\RethinkQL\Query\Aggregation;
5
6
use TBolier\RethinkQL\Query\QueryInterface;
7
8
trait AggregationTrait
9
{
10
    public function count(): QueryInterface
11
    {
12
        return new Count($this->rethink, /** @scrutinizer ignore-type */ $this);
13
    }
14
15
    public function group(string $key)
16
    {
17
        return new Group($this->rethink, /** @scrutinizer ignore-type */ $this, $key);
18
    }
19
20
    public function ungroup()
21
    {
22
        return new Ungroup($this->rethink, /** @scrutinizer ignore-type */ $this);
23
    }
24
25
    public function sum(string $key): QueryInterface
26
    {
27
        return new Sum($this->rethink, /** @scrutinizer ignore-type */ $this, $key);
28
    }
29
30
    public function avg(string $key): QueryInterface
31
    {
32
        return new Avg($this->rethink, /** @scrutinizer ignore-type */ $this, $key);
33
    }
34
35
    public function min(string $key)
36
    {
37
        return new Min($this->rethink, /** @scrutinizer ignore-type */ $this, $key);
38
    }
39
40
    public function max(string $key)
41
    {
42
        return new Max($this->rethink, /** @scrutinizer ignore-type */ $this, $key);
43
    }
44
}
45