CacheService   A
last analyzed

Complexity

Total Complexity 15

Size/Duplication

Total Lines 141
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 32
c 0
b 0
f 0
dl 0
loc 141
rs 10
wmc 15

11 Methods

Rating   Name   Duplication   Size   Complexity  
A clearPerfImages() 0 14 3
A new_department() 0 3 1
A delete_ticket() 0 12 2
A __construct() 0 4 1
A new_ticket() 0 3 1
A batch_status() 0 3 1
A reopen_ticket() 0 3 1
A getInstance() 0 8 2
A delete_department() 0 3 1
A close_ticket() 0 3 1
A attachEvents() 0 7 1
1
<?php declare(strict_types=1);
2
3
namespace XoopsModules\Xhelp;
4
5
/*
6
 * You may not change or alter any portion of this comment or credits
7
 * of supporting developers from this source code or any supporting source code
8
 * which is considered copyrighted (c) material of the original comment or credit authors.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
 */
14
15
/**
16
 * @copyright    {@link https://xoops.org/ XOOPS Project}
17
 * @license      {@link https://www.gnu.org/licenses/gpl-2.0.html GNU GPL 2 or later}
18
 * @author       Brian Wahoff <[email protected]>
19
 * @author       XOOPS Development Team
20
 */
21
22
/**
23
 * CacheService class
24
 *
25
 * Part of the Messaging Subsystem.  Responsible for updating files in the XOOPS_ROOT_PATH/cache directory
26
 *
27
 *
28
 * @author  Brian Wahoff <[email protected]>
29
 */
30
class CacheService extends Service
31
{
32
    /**
33
     * Location of Xoops Cache Directory
34
     *
35
     * @var string
36
     */
37
    private $cacheDir;
38
    //    public $_cookies = [];
39
40
    /**
41
     * Class Constructor
42
     */
43
    public function __construct()
44
    {
45
        $this->cacheDir = \XHELP_CACHE_PATH;
46
        $this->init();
47
    }
48
49
    /**
50
     *
51
     */
52
    public function attachEvents(): void
53
    {
54
        $this->attachEvent('batch_status', $this);
55
        $this->attachEvent('close_ticket', $this);
56
        $this->attachEvent('delete_ticket', $this);
57
        $this->attachEvent('new_ticket', $this);
58
        $this->attachEvent('reopen_ticket', $this);
59
    }
60
61
    /**
62
     * Reset Performance Images on 'new_ticket' event
63
     * @param Ticket $ticket Ticket that was added
64
     * @return bool        True on success, false on error
65
     */
66
    public function new_ticket(Ticket $ticket): bool
0 ignored issues
show
Unused Code introduced by
The parameter $ticket is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

66
    public function new_ticket(/** @scrutinizer ignore-unused */ Ticket $ticket): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
67
    {
68
        return $this->clearPerfImages();
69
    }
70
71
    /**
72
     * Reset Performance Images on 'close_ticket' event
73
     * @param Ticket $ticket Ticket that was closed
74
     * @return bool        True on success, false on error
75
     */
76
    public function close_ticket(Ticket $ticket): bool
0 ignored issues
show
Unused Code introduced by
The parameter $ticket is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

76
    public function close_ticket(/** @scrutinizer ignore-unused */ Ticket $ticket): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
77
    {
78
        return $this->clearPerfImages();
79
    }
80
81
    /**
82
     * Call Backback function for 'delete_ticket'
83
     * @param Ticket $ticket Ticket being deleted
84
     * @return bool        True on success, false on error
85
     */
86
    public function delete_ticket(Ticket $ticket): bool
87
    {
88
        $ret    = false;
89
        $helper = Helper::getInstance();
90
        /** @var \XoopsModules\Xhelp\StatusHandler $statusHandler */
91
        $statusHandler = $helper->getHandler('Status');
92
        $status        = $statusHandler->get($ticket->getVar('status'));
93
94
        if (\XHELP_STATE_UNRESOLVED == $status->getVar('state')) {
95
            return $this->clearPerfImages();
96
        }
97
        return $ret;
98
    }
99
100
    /**
101
     * Reset Performance Images on 'reopen_ticket' event
102
     * @param Ticket $ticket Ticket that was re-opened
103
     * @return bool        True on success, false on error
104
     */
105
    public function reopen_ticket(Ticket $ticket): bool
0 ignored issues
show
Unused Code introduced by
The parameter $ticket is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

105
    public function reopen_ticket(/** @scrutinizer ignore-unused */ Ticket $ticket): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
106
    {
107
        return $this->clearPerfImages();
108
    }
109
110
    /**
111
     * Callback function for the 'new_department' event
112
     * @param array $args Array of arguments passed to EventService
113
     * @return bool  True on success, false on error
114
     */
115
    public function new_department(array $args): bool
0 ignored issues
show
Unused Code introduced by
The parameter $args is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

115
    public function new_department(/** @scrutinizer ignore-unused */ array $args): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
116
    {
117
        return $this->clearPerfImages();
118
    }
119
120
    /**
121
     * Callback function for the 'delete_department' event
122
     * @param array $args Array of arguments passed to EventService
123
     * @return bool  True on success, false on error
124
     */
125
    public function delete_department(array $args): bool
0 ignored issues
show
Unused Code introduced by
The parameter $args is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

125
    public function delete_department(/** @scrutinizer ignore-unused */ array $args): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
126
    {
127
        return $this->clearPerfImages();
128
    }
129
130
    /**
131
     * @param array $args
132
     * @return bool
133
     */
134
    public function batch_status(array $args): bool
0 ignored issues
show
Unused Code introduced by
The parameter $args is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

134
    public function batch_status(/** @scrutinizer ignore-unused */ array $args): bool

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
135
    {
136
        return $this->clearPerfImages();
137
    }
138
139
    /**
140
     * Removes all cached images for the Department Performance block
141
     * @return bool True on success, false on error
142
     */
143
    public function clearPerfImages(): bool
144
    {
145
        //Remove all cached department queue images
146
        $opendir = \opendir($this->cacheDir);
147
148
        while (false !== ($file = \readdir($opendir))) {
149
            if (false === mb_strpos((string)$file, 'xhelp_perf_')) {
150
                continue;
151
            }
152
153
            \unlink($this->cacheDir . '/' . $file);
154
        }
155
156
        return true;
157
    }
158
159
    /**
160
     * Only have 1 instance of class used
161
     * @return Service {@link Service}
162
     */
163
    public static function getInstance(): Service
164
    {
165
        static $instance;
166
        if (null === $instance) {
167
            $instance = new static();
168
        }
169
170
        return $instance;
171
    }
172
}
173