Skip to content

Commit 02b0f26

Browse files
committed
refactor array_filter to its own method
1 parent 46d854a commit 02b0f26

File tree

10 files changed

+39
-70
lines changed

10 files changed

+39
-70
lines changed

lib/Redmine/Api/AbstractApi.php

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,26 @@ protected function delete($path)
9696
*/
9797
protected function isNotNull($var)
9898
{
99-
return false !== $var &&
99+
return
100+
false !== $var &&
100101
null !== $var &&
101102
'' !== $var &&
102103
!( (is_array($var) || is_object($var)) && empty($var) );
103104
}
104105

106+
/**
107+
* @param array $defaults
108+
* @param array $params
109+
*
110+
* @return array
111+
*/
112+
protected function sanitizeParams(array $defaults, array $params)
113+
{
114+
return array_filter(
115+
array_merge($defaults, $params),
116+
array($this, 'isNotNull')
117+
);
118+
}
105119
/**
106120
* Retrieves all the elements of a given endpoint (even if the
107121
* total number of elements is greater than 100)
@@ -119,10 +133,7 @@ protected function retrieveAll($endpoint, array $params = array())
119133
'limit' => 25,
120134
'offset' => 0,
121135
);
122-
$params = array_filter(
123-
array_merge($defaults, $params),
124-
array($this, 'isNotNull')
125-
);
136+
$params = $this->sanitizeParams($defaults, $params);
126137

127138
$ret = array();
128139

lib/Redmine/Api/Group.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,8 @@ public function create(array $params = array())
5858
'name' => null,
5959
'user_ids' => null,
6060
);
61-
$params = array_filter(
62-
array_merge($defaults, $params),
63-
array($this, 'isNotNull')
64-
);
61+
$params = $this->sanitizeParams($defaults, $params);
62+
6563
if (
6664
!isset($params['name'])
6765
) {

lib/Redmine/Api/Issue.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,7 @@ public function create(array $params = array())
127127
'watcher_user_ids' => null,
128128
);
129129
$params = $this->cleanParams($params);
130-
$params = array_filter(
131-
array_merge($defaults, $params),
132-
array($this, 'isNotNull')
133-
);
130+
$params = $this->sanitizeParams($defaults, $params);
134131

135132
$xml = $this->buildXML($params);
136133

@@ -169,10 +166,7 @@ public function update($id, array $params)
169166
'due_date' => null,
170167
);
171168
$params = $this->cleanParams($params);
172-
$params = array_filter(
173-
array_merge($defaults, $params),
174-
array($this, 'isNotNull')
175-
);
169+
$params = $this->sanitizeParams($defaults, $params);
176170

177171
$xml = $this->buildXML($params);
178172

lib/Redmine/Api/IssueCategory.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,8 @@ public function create($project, array $params = array())
9090
'name' => null,
9191
'assigned_to_id' => null,
9292
);
93-
$params = array_filter(
94-
array_merge($defaults, $params),
95-
array($this, 'isNotNull')
96-
);
93+
$params = $this->sanitizeParams($defaults, $params);
94+
9795
if (
9896
!isset($params['name'])
9997
) {
@@ -122,10 +120,7 @@ public function update($id, array $params)
122120
'name' => null,
123121
'assigned_to_id' => null,
124122
);
125-
$params = array_filter(
126-
array_merge($defaults, $params),
127-
array($this, 'isNotNull')
128-
);
123+
$params = $this->sanitizeParams($defaults, $params);
129124

130125
$xml = new SimpleXMLElement('<?xml version="1.0"?><issue_category></issue_category>');
131126
foreach ($params as $k => $v) {

lib/Redmine/Api/Membership.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,8 @@ public function create($project, array $params = array())
4242
'user_ids' => null,
4343
'role_ids' => null,
4444
);
45-
$params = array_filter(
46-
array_merge($defaults, $params),
47-
array($this, 'isNotNull')
48-
);
45+
$params = $this->sanitizeParams($defaults, $params);
46+
4947
if ((!isset($params['user_ids']) && !isset($params['user_id']))
5048
|| !isset($params['role_ids'])
5149
) {
@@ -70,10 +68,8 @@ public function update($id, array $params = array())
7068
$defaults = array(
7169
'role_ids' => null,
7270
);
73-
$params = array_filter(
74-
array_merge($defaults, $params),
75-
array($this, 'isNotNull')
76-
);
71+
$params = $this->sanitizeParams($defaults, $params);
72+
7773
if (!isset($params['role_ids'])) {
7874
throw new \Exception('Missing mandatory parameters');
7975
}

lib/Redmine/Api/Project.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,7 @@ public function create(array $params = array())
8888
'identifier' => null,
8989
'description' => null,
9090
);
91-
92-
$params = array_filter(
93-
array_merge($defaults, $params),
94-
array($this, 'isNotNull')
95-
);
91+
$params = $this->sanitizeParams($defaults, $params);
9692

9793
if (
9894
!isset($params['name'])
@@ -122,10 +118,7 @@ public function update($id, array $params)
122118
'identifier' => null,
123119
'description' => null,
124120
);
125-
$params = array_filter(
126-
array_merge($defaults, $params),
127-
array($this, 'isNotNull')
128-
);
121+
$params = $this->sanitizeParams($defaults, $params);
129122

130123
$xml = $this->prepareParamsXml($params);
131124

lib/Redmine/Api/TimeEntry.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ public function create(array $params = array())
5454
'activity_id' => null,
5555
'comments' => null,
5656
);
57-
$params = array_filter(
58-
array_merge($defaults, $params),
59-
array($this, 'isNotNull')
60-
);
57+
$params = $this->sanitizeParams($defaults, $params);
58+
6159
if (
6260
(!isset($params['issue_id']) && !isset($params['project_id']))
6361
|| !isset($params['hours'])
@@ -92,10 +90,7 @@ public function update($id, array $params)
9290
'activity_id' => null,
9391
'comments' => null,
9492
);
95-
$params = array_filter(
96-
array_merge($defaults, $params),
97-
array($this, 'isNotNull')
98-
);
93+
$params = $this->sanitizeParams($defaults, $params);
9994

10095
$xml = new SimpleXMLElement('<?xml version="1.0"?><time_entry></time_entry>');
10196
foreach ($params as $k => $v) {

lib/Redmine/Api/User.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,8 @@ public function create(array $params = array())
101101
'mail' => null,
102102
// 'auth_source_id' => null,
103103
);
104-
$params = array_filter(
105-
array_merge($defaults, $params),
106-
array($this, 'isNotNull')
107-
);
104+
$params = $this->sanitizeParams($defaults, $params);
105+
108106
if (
109107
!isset($params['login'])
110108
|| !isset($params['lastname'])
@@ -144,10 +142,7 @@ public function update($id, array $params)
144142
'mail' => null,
145143
// 'auth_source_id' => null,
146144
);
147-
$params = array_filter(
148-
array_merge($defaults, $params),
149-
array($this, 'isNotNull')
150-
);
145+
$params = $this->sanitizeParams($defaults, $params);
151146

152147
$xml = new SimpleXMLElement('<?xml version="1.0"?><user></user>');
153148
foreach ($params as $k => $v) {

lib/Redmine/Api/Version.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,8 @@ public function create($project, array $params = array())
9494
'sharing' => null,
9595
'due_date' => null,
9696
);
97-
$params = array_filter(
98-
array_merge($defaults, $params),
99-
array($this, 'isNotNull')
100-
);
97+
$params = $this->sanitizeParams($defaults, $params);
98+
10199
if (
102100
!isset($params['name'])
103101
) {
@@ -131,10 +129,7 @@ public function update($id, array $params)
131129
'sharing' => null,
132130
'due_date' => null,
133131
);
134-
$params = array_filter(
135-
array_merge($defaults, $params),
136-
array($this, 'isNotNull')
137-
);
132+
$params = $this->sanitizeParams($defaults, $params);
138133
$this->validateStatus($params);
139134
$this->validateSharing($params);
140135

lib/Redmine/Api/Wiki.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,7 @@ public function create($project, $page, array $params = array())
6060
'comments' => null,
6161
'version' => null,
6262
);
63-
$params = array_filter(
64-
array_merge($defaults, $params),
65-
array($this, 'isNotNull')
66-
);
63+
$params = $this->sanitizeParams($defaults, $params);
6764

6865
$xml = new SimpleXMLElement('<?xml version="1.0"?><wiki_page></wiki_page>');
6966
foreach ($params as $k => $v) {

0 commit comments

Comments
 (0)