Completed
Branch master (49dc1a)
by Yaro
01:42
created

UrlTrait   A

Complexity

Total Complexity 18

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 89.19%

Importance

Changes 0
Metric Value
wmc 18
lcom 1
cbo 0
dl 0
loc 94
ccs 33
cts 37
cp 0.8919
rs 10
c 0
b 0
f 0

18 Methods

Rating   Name   Duplication   Size   Complexity  
A listUrl() 0 4 1
A inlineUrl() 0 4 1
A editUrl() 0 4 1
A createUrl() 0 4 1
A deleteUrl() 0 4 1
A restoreUrl() 0 4 1
A forceDeleteUrl() 0 4 1
A toolbarUrl() 0 4 1
A perPageUrl() 0 4 1
A searchUrl() 0 4 1
A relationSearchUrl() 0 4 1
A orderUrl() 0 4 1
A reorderUrl() 0 4 1
A reorderMoveItemUrl() 0 4 1
A renderRepeaterItemUrl() 0 4 1
A historyUrl() 0 4 1
A revertUrl() 0 4 1
A baseUrl() 0 6 1
1
<?php
2
3
namespace Yaro\Jarboe\Table\CrudTraits;
4
5
trait UrlTrait
6
{
7 1
    public function editUrl($id)
8
    {
9 1
        return sprintf('%s%s%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
10
    }
11
12 1
    public function createUrl()
13
    {
14 1
        return sprintf('%s%screate', $this->baseUrl(), self::BASE_URL_DELIMITER);
15
    }
16
17 1
    public function deleteUrl($id)
18
    {
19 1
        return sprintf('%s%s%s/delete', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
20
    }
21
22 1
    public function restoreUrl($id)
23
    {
24 1
        return sprintf('%s%s%s/restore', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
25
    }
26
27 1
    public function forceDeleteUrl($id)
28
    {
29 1
        return sprintf('%s%s%s/force-delete', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
30
    }
31
32 3
    public function toolbarUrl($identifier)
33
    {
34 3
        return sprintf('%s%stoolbar/%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $identifier);
35
    }
36
37 5
    public function listUrl()
38
    {
39 5
        return $this->baseUrl();
40
    }
41
42 1
    public function perPageUrl($perPage)
43
    {
44 1
        return sprintf('%s%sper-page/%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $perPage);
45
    }
46
47 1
    public function searchUrl()
48
    {
49 1
        return sprintf('%s%ssearch', $this->baseUrl(), self::BASE_URL_DELIMITER);
50
    }
51
52 1
    public function relationSearchUrl()
53
    {
54 1
        return sprintf('%s%ssearch/relation', $this->baseUrl(), self::BASE_URL_DELIMITER);
55
    }
56
57 58
    public function inlineUrl()
58
    {
59 58
        return sprintf('%s%sinline', $this->baseUrl(), self::BASE_URL_DELIMITER);
60
    }
61
62 1
    public function orderUrl($column, $direction)
63
    {
64 1
        return sprintf('%s%sorder/%s/%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $column, $direction);
65
    }
66
67 1
    public function reorderUrl()
68
    {
69 1
        return sprintf('%s%sreorder/switch', $this->baseUrl(), self::BASE_URL_DELIMITER);
70
    }
71
72 1
    public function reorderMoveItemUrl($id)
73
    {
74 1
        return sprintf('%s%sreorder/move/%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
75
    }
76
77
    public function renderRepeaterItemUrl($fieldName)
78
    {
79
        return sprintf('%s%srender-repeater-item/%s', $this->baseUrl(), self::BASE_URL_DELIMITER, $fieldName);
80
    }
81
82
    public function historyUrl($id)
83
    {
84
        return sprintf('%s%s%s/history', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
85
    }
86
87 1
    public function revertUrl($id)
88
    {
89 1
        return sprintf('%s%s%s/revert', $this->baseUrl(), self::BASE_URL_DELIMITER, $id);
90
    }
91
92 62
    public function baseUrl()
93
    {
94 62
        $chunks = explode(self::BASE_URL_DELIMITER, request()->url());
95
96 62
        return rtrim($chunks[0], '/');
97
    }
98
}
99