Completed
Push — master ( a4831f...a4416a )
by ARCANEDEV
07:50
created

UserAgentTracker::getParser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php namespace Arcanedev\LaravelTracker\Trackers;
2
3
use Arcanedev\LaravelTracker\Contracts\Parsers\UserAgentParser;
4
use Arcanedev\LaravelTracker\Models\Agent;
5
6
/**
7
 * Class     UserAgentTracker
8
 *
9
 * @package  Arcanedev\LaravelTracker\Trackers
10
 * @author   ARCANEDEV <[email protected]>
11
 */
12
class UserAgentTracker
13
{
14
    /* ------------------------------------------------------------------------------------------------
15
     |  Properties
16
     | ------------------------------------------------------------------------------------------------
17
     */
18
    /** @var \Arcanedev\LaravelTracker\Contracts\Parsers\UserAgentParser */
19
    protected $parser;
20
21
    /* ------------------------------------------------------------------------------------------------
22
     |  Constructor
23
     | ------------------------------------------------------------------------------------------------
24
     */
25
    /**
26
     * UserAgentTracker constructor.
27
     */
28
    public function __construct()
29
    {
30
        $this->parser = app(UserAgentParser::class);
31
    }
32
33
    /* ------------------------------------------------------------------------------------------------
34
     |  Getters & Setters
35
     | ------------------------------------------------------------------------------------------------
36
     */
37
    /**
38
     * Get the user agent parser.
39
     *
40
     * @return \Arcanedev\LaravelTracker\Contracts\Parsers\UserAgentParser
41
     */
42
    public function getParser()
43
    {
44
        return $this->parser;
45
    }
46
47
    /* ------------------------------------------------------------------------------------------------
48
     |  Main Functions
49
     | ------------------------------------------------------------------------------------------------
50
     */
51
    /**
52
     * Track the user agent.
53
     *
54
     * @return int
55
     */
56
    public function track()
57
    {
58
        $data = [
59
            'name'            => $this->parser->getOriginalUserAgent() ?: 'Other',
60
            'browser'         => $this->parser->getBrowser(),
61
            'browser_version' => $this->parser->getUserAgentVersion(),
62
        ];
63
64
        $model = Agent::firstOrCreate($data, $data);
65
66
        return $model->id;
67
    }
68
}
69