Passed
Pull Request — master (#48)
by Brian
03:45
created

Plugin   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Test Coverage

Coverage 96.43%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 24
c 2
b 0
f 0
dl 0
loc 61
ccs 27
cts 28
cp 0.9643
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A bootstrap() 0 32 5
A routes() 0 13 1
1
<?php
2
declare(strict_types=1);
3
4
/**
5
 * Plugin Definitions
6
 */
7
8
namespace Fr3nch13\Jira;
9
10
use Cake\Core\BasePlugin;
11
use Cake\Core\Configure;
12
use Cake\Core\PluginApplicationInterface;
13
use Cake\Routing\Route\DashedRoute;
14
use Cake\Routing\RouteBuilder;
15
16
/**
17
 * Plugin Definitions
18
 */
19
class Plugin extends BasePlugin
20
{
21
    /**
22
     * Bootstraping for this specific plugin.
23
     *
24
     * @param \Cake\Core\PluginApplicationInterface $app The app object.
25
     * @return void
26
     */
27 68
    public function bootstrap(PluginApplicationInterface $app): void
28
    {
29
        // Add constants, load configuration defaults,
30
        // and initiate any required cakephp plugins.
31
32
        // detect which major version of php we're running,
33
        // and only filter if the version is greater than 7.
34 68
        $jiraHost = env('JIRA_HOST', false);
35 68
        if ($jiraHost) {
36 68
            $version = explode('.', PHP_VERSION);
37 68
            if ((int)$version[0] >= 7) {
38 68
                $jiraHost = filter_var($jiraHost, FILTER_VALIDATE_DOMAIN);
39
            }
40
        }
41
42 68
        if (!Configure::read('Jira')) {
43 68
            if (!defined('LOGS')) {
44
                define('LOGS', '/tmp/');
45
            }
46 68
            Configure::write('Jira', [
47 68
                'schema' => env('JIRA_SCHEMA', 'https'),
48 68
                'host' => $jiraHost,
49 68
                'username' => env('JIRA_USERNAME', null),
50 68
                'apiKey' => env('JIRA_API_KEY', null),
51 68
                'projectKey' => env('JIRA_PROJECT_KEY', null),
52 68
                'useV3RestApi' => env('JIRA_REST_API_V3', true),
53 68
                'jiraLogFile' => LOGS . 'jira-client.log',
54 68
            ]);
55
        }
56
57
        // By default will load `config/bootstrap.php` in the plugin.
58 68
        parent::bootstrap($app);
59
    }
60
61
    /**
62
     * Add plugin specific routes here.
63
     *
64
     * @param \Cake\Routing\RouteBuilder $routes The passed routes object.
65
     * @return void
66
     */
67 17
    public function routes(RouteBuilder $routes): void
68
    {
69
        // Add routes.
70 17
        $routes->plugin(
71 17
            'Fr3nch13/Jira',
72 17
            ['path' => '/jira'],
73 17
            function (RouteBuilder $routes) {
74 17
                $routes->fallbacks(DashedRoute::class);
75 17
            }
76 17
        );
77
78
        // By default will load `config/routes.php` in the plugin.
79 17
        parent::routes($routes);
80
    }
81
}
82