Passed
Pull Request — master (#21)
by Maximo
04:23
created

Apps   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 121
Duplicated Lines 0 %

Test Coverage

Coverage 91.3%

Importance

Changes 0
Metric Value
eloc 30
dl 0
loc 121
ccs 21
cts 23
cp 0.913
rs 10
c 0
b 0
f 0
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A initialize() 0 18 1
A isActive() 0 3 1
A getACLApp() 0 9 2
A getSource() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Gewaer\Models;
5
6
class Apps extends \Baka\Auth\Models\Apps
7
{
8
    /**
9
     *
10
     * @var integer
11
     */
12
    public $id;
13
14
    /**
15
     *
16
     * @var string
17
     */
18
    public $name;
19
20
    /**
21
     *
22
     * @var string
23
     */
24
    public $description;
25
26
    /**
27
     *
28
     * @var string
29
     */
30
    public $url;
31
32
    /**
33
     *
34
     * @var integer
35
     */
36
    public $default_apps_plan_id;
37
38
    /**
39
     *
40
     * @var integer
41
     */
42
    public $is_actived;
43
44
    /**
45
     *
46
     * @var string
47
     */
48
    public $created_at;
49
50
    /**
51
     *
52
     * @var string
53
     */
54
    public $updated_at;
55
56
    /**
57
     *
58
     * @var integer
59
     */
60
    public $is_deleted;
61
62
    /**
63
     * Ecosystem default app
64
     * @var string
65
     */
66
    const GEWAER_DEFAULT_APP_NAME = 'Default';
67
68
    /**
69
     * Initialize method for model.
70
     */
71 29
    public function initialize()
72
    {
73 29
        parent::initialize();
74
75 29
        $this->setSource('apps');
76
77 29
        $this->hasOne(
78 29
            'default_apps_plan_id',
79 29
            'Gewaer\Models\AppsPlans',
80 29
            'id',
81 29
            ['alias' => 'plan']
82
        );
83
84 29
        $this->hasMany(
85 29
            'id',
86 29
            'Gewaer\Models\AppsPlans',
87 29
            'apps_id',
88 29
            ['alias' => 'plans']
89
        );
90 29
    }
91
92
    /**
93
     * You can only get 2 variations or default in DB or the api app
94
     *
95
     * @param string $name
96
     * @return Apps
97
     */
98 14
    public static function getACLApp(string $name): Apps
99
    {
100 14
        if (trim($name) == self::GEWAER_DEFAULT_APP_NAME) {
101 10
            $app = self::findFirst(0);
102
        } else {
103 4
            $app = self::findFirst(\Phalcon\DI::getDefault()->getConfig()->app->id);
104
        }
105
106 14
        return $app;
107
    }
108
109
    /**
110
     * Is active?
111
     *
112
     * @return boolean
113
     */
114
    public function isActive(): bool
115
    {
116
        return (bool) $this->is_actived;
117
    }
118
119
    /**
120
     * Returns table name mapped in the model.
121
     *
122
     * @return string
123
     */
124 27
    public function getSource() : string
125
    {
126 27
        return 'apps';
127
    }
128
}
129