This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace allejo\Wufoo; |
||
4 | |||
5 | use allejo\Wufoo\Exceptions\SubmissionException; |
||
6 | |||
7 | /** |
||
8 | * @api |
||
9 | * @since 0.1.0 |
||
10 | */ |
||
11 | class WufooForm extends ApiObject |
||
12 | { |
||
13 | /** |
||
14 | * Create an object for interacting with a Wufoo form. |
||
15 | * |
||
16 | * **Warning:** Keep in mind, when using the URL-friendly name, that value will change if you rename the form. It is |
||
17 | * recommended you use the unique ID of the form. |
||
18 | * |
||
19 | * @api |
||
20 | * |
||
21 | * @param string $id The unique ID of the Wufoo form or URL-friendly name. |
||
22 | * |
||
23 | * @since 0.1.0 |
||
24 | */ |
||
25 | public function __construct($id) |
||
26 | { |
||
27 | $this->id = $id; |
||
28 | } |
||
29 | |||
30 | /** |
||
31 | * Get the details of this form. |
||
32 | * |
||
33 | * @api |
||
34 | * |
||
35 | * @param bool $includeTodayCount Set to true to include the number of entries received today. |
||
36 | * |
||
37 | * @since 0.1.0 |
||
38 | * |
||
39 | * @return mixed |
||
40 | */ |
||
41 | public function getDetails($includeTodayCount = false) |
||
42 | { |
||
43 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}.json'); |
||
44 | |||
45 | $result = self::$client |
||
46 | ->get($url, [ |
||
47 | 'query' => 'includeTodayCount=' . ($includeTodayCount) ? 'true' : 'false' |
||
48 | ]) |
||
49 | ->getBody(); |
||
50 | |||
51 | $json = json_decode($result, true); |
||
52 | |||
53 | return $json['Forms'][0]; |
||
54 | } |
||
55 | |||
56 | /** |
||
57 | * Get the fields in this form. |
||
58 | * |
||
59 | * @api |
||
60 | * |
||
61 | * @param bool $getSystem Set to true to receive |
||
62 | * |
||
63 | * @since 0.1.0 |
||
64 | * |
||
65 | * @return array |
||
66 | */ |
||
67 | public function getFields($getSystem = false) |
||
68 | { |
||
69 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/fields.json'); |
||
70 | $params = [ |
||
71 | 'system' => ($getSystem === true) ? 'true' : null |
||
72 | ]; |
||
73 | |||
74 | self::prepareQueryParameters($params); |
||
0 ignored issues
–
show
|
|||
75 | |||
76 | $result = self::$client |
||
77 | ->get($url, [ |
||
78 | 'query' => self::buildQuery($params) |
||
79 | ]) |
||
80 | ->getBody(); |
||
81 | |||
82 | $json = json_decode($result, true); |
||
83 | |||
84 | return $json['Fields']; |
||
85 | } |
||
86 | |||
87 | /** |
||
88 | * Get any comments made on this form's entries. |
||
89 | * |
||
90 | * @api |
||
91 | * |
||
92 | * @param int|null $entryID Get comments for only a specific entry |
||
93 | * @param int|null $offset The offset of comments that |
||
94 | * @param int|null $limit The number comments returned in the request (maximum of 100) |
||
95 | * |
||
96 | * @since 0.1.0 |
||
97 | * |
||
98 | * @return array |
||
99 | */ |
||
100 | public function getComments($entryID = null, $offset = null, $limit = null) |
||
101 | { |
||
102 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/comments.json'); |
||
103 | $params = [ |
||
104 | 'entryId' => $entryID, |
||
105 | 'pageStart' => $offset, |
||
106 | 'pageSize' => $limit |
||
107 | ]; |
||
108 | |||
109 | self::prepareQueryParameters($params); |
||
0 ignored issues
–
show
The call to the method
allejo\Wufoo\WufooForm::prepareQueryParameters() seems un-needed as the method has no side-effects.
PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left. Let’s take a look at an example: class User
{
private $email;
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
}
If we look at the $user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.
On the hand, if we look at the $user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
// instance variable).
![]() |
|||
110 | |||
111 | $result = self::$client |
||
112 | ->get($url, [ |
||
113 | 'query' => self::buildQuery($params) |
||
114 | ]) |
||
115 | ->getBody(); |
||
116 | |||
117 | $json = json_decode($result, true); |
||
118 | |||
119 | return $json['Comments']; |
||
120 | } |
||
121 | |||
122 | /** |
||
123 | * Get the number of comments made on this form's entries. |
||
124 | * |
||
125 | * @api |
||
126 | * |
||
127 | * @since 0.1.0 |
||
128 | * |
||
129 | * @return int |
||
130 | */ |
||
131 | View Code Duplication | public function getCommentCount() |
|
0 ignored issues
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
132 | { |
||
133 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/comments/count.json'); |
||
134 | |||
135 | $result = self::$client |
||
136 | ->get($url) |
||
137 | ->getBody(); |
||
138 | |||
139 | $json = json_decode($result, true); |
||
140 | |||
141 | return $json['Count']; |
||
142 | } |
||
143 | |||
144 | /** |
||
145 | * Get the entries belonging to this form. |
||
146 | * |
||
147 | * **Warning:** |
||
148 | * - Data in fields that are marked as “Admin Only” are not returned via the API. |
||
149 | * - Data from "hidden" and encrypted fields will be shown |
||
150 | * |
||
151 | * @api |
||
152 | * |
||
153 | * @param EntryQuery|null $query When set to null, 25 entries will be retrieved (a limit imposed by Wufoo). Use an |
||
154 | * EntryQuery object to have more control on what entries to receive and how. |
||
155 | * |
||
156 | * @since 0.1.0 |
||
157 | * |
||
158 | * @return mixed |
||
159 | */ |
||
160 | public function getEntries(EntryQuery $query = null) |
||
161 | { |
||
162 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/entries.json'); |
||
163 | $result = self::$client |
||
164 | ->get($url, [ |
||
165 | 'query' => (string)$query |
||
166 | ]) |
||
167 | ->getBody(); |
||
168 | |||
169 | $json = json_decode($result, true); |
||
170 | |||
171 | return $json['Entries']; |
||
172 | } |
||
173 | |||
174 | /** |
||
175 | * Get the number of entries this Wufoo form has. |
||
176 | * |
||
177 | * @api |
||
178 | * |
||
179 | * @since 0.1.0 |
||
180 | * |
||
181 | * @return int |
||
182 | */ |
||
183 | View Code Duplication | public function getEntriesCount() |
|
0 ignored issues
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
184 | { |
||
185 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/entries/count.json'); |
||
186 | $result = self::$client->get($url)->getBody(); |
||
187 | $json = json_decode($result, true); |
||
188 | |||
189 | return $json['EntryCount']; |
||
190 | } |
||
191 | |||
192 | /** |
||
193 | * Submit an entry to this Wufoo form. |
||
194 | * |
||
195 | * @api |
||
196 | * |
||
197 | * @param array $formData An array containing the data that will be POST'd to the Wufoo form. The keys used in the |
||
198 | * the array should be the unique IDs (e.g. Field1, Field12). |
||
199 | * |
||
200 | * @since 0.1.0 |
||
201 | * |
||
202 | * @throws SubmissionException Wufoo returned an error on the entry submission. |
||
203 | * |
||
204 | * @return mixed |
||
205 | */ |
||
206 | public function submitEntry(array $formData) |
||
207 | { |
||
208 | $url = $this->buildUrl('https://{subdomain}.wufoo.com/api/v3/forms/{identifier}/entries.json'); |
||
209 | $result = self::$client |
||
210 | ->post($url, [ |
||
211 | 'form_params' => $formData |
||
212 | ]) |
||
213 | ->getBody(); |
||
214 | $json = json_decode($result, true); |
||
215 | |||
216 | if ($json['Success'] == 0) |
||
217 | { |
||
218 | throw new SubmissionException($json); |
||
219 | } |
||
220 | |||
221 | return $json['EntryId']; |
||
222 | } |
||
223 | |||
224 | /** |
||
225 | * Get details of all the forms under this account. |
||
226 | * |
||
227 | * @api |
||
228 | * |
||
229 | * @param bool $includeTodayCount Set to true to include the number of entries received today. |
||
230 | * |
||
231 | * @since 0.1.0 |
||
232 | * |
||
233 | * @return array |
||
234 | */ |
||
235 | public static function getForms($includeTodayCount = false) |
||
236 | { |
||
237 | $url = self::interpolate('https://{subdomain}.wufoo.com/api/v3/forms.json', [ |
||
238 | 'subdomain' => self::$subdomain |
||
239 | ]); |
||
240 | $params = [ |
||
241 | 'includeTodayCount' => ($includeTodayCount) ? 'true' : null |
||
242 | ]; |
||
243 | |||
244 | self::prepareQueryParameters($params); |
||
0 ignored issues
–
show
The call to the method
allejo\Wufoo\WufooForm::prepareQueryParameters() seems un-needed as the method has no side-effects.
PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left. Let’s take a look at an example: class User
{
private $email;
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
}
If we look at the $user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.
On the hand, if we look at the $user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
// instance variable).
![]() |
|||
245 | |||
246 | $result = self::$client |
||
247 | ->get($url, [ |
||
248 | 'query' => self::buildQuery($params) |
||
249 | ]) |
||
250 | ->getBody(); |
||
251 | |||
252 | $json = json_decode($result, true); |
||
253 | |||
254 | return $json['Forms']; |
||
255 | } |
||
256 | } |
||
257 |
PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left.
Let’s take a look at an example:
If we look at the
getEmail()
method, we can see that it has no side-effect. Whether you call this method or not, no future calls to other methods are affected by this. As such code as the following is useless:On the hand, if we look at the
setEmail()
, this method _has_ side-effects. In the following case, we could not remove the method call: