Completed
Push — master ( ccd76c...2762b1 )
by Timo
09:07
created

SessionHelper::_getFormattedKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 7
cts 7
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 8
nc 1
nop 2
crap 1
1
<?php
2
3
namespace hamburgscleanest\DataTables\Helpers;
4
5
use Illuminate\Http\Request;
6
7
/**
8
 * Class SessionHelper
9
 * @package hamburgscleanest\DataTables\Helpers
10
 */
11
class SessionHelper {
12
13
    const SESSION_STORAGE = 'data-tables.';
14
15
    /**
16
     * @param Request $request
17
     * @param string $key
18
     * @return string
19
     */
20 3
    private function _getFormattedKey(Request $request, string $key): string
21
    {
22
        return
23 3
            self::SESSION_STORAGE .
24 3
            \preg_replace(
25 3
                '/\.|\//',
26 3
                '_',
27 3
                \preg_replace('/(http|https):\/\//', '', $request->url())
28
            ) .
29 3
            '.' . $key;
30
    }
31
32
    /**
33
     * @param Request $request
34
     * @param string $key
35
     * @param mixed $sessionValue
36
     */
37 2
    public function saveState(Request $request, string $key, $sessionValue)
38
    {
39 2
        $request->session()->put($this->_getFormattedKey($request, $key), $sessionValue);
40 2
    }
41
42
    /**
43
     * @param Request $request
44
     * @param string $key
45
     * @param null $default
46
     * @return mixed
47
     */
48 3
    public function getState(Request $request, string $key, $default = null)
49
    {
50 3
        return $request->session()->get($this->_getFormattedKey($request, $key)) ?? $default;
51
    }
52
53
    /**
54
     * @param Request $request
55
     * @param string $key
56
     */
57 1
    public function removeState(Request $request, string $key)
58
    {
59 1
        $request->session()->remove($this->_getFormattedKey($request, $key));
60
    }
61
}