Completed
Push — master ( ed8952...fe4715 )
by Vladimir
02:26
created

Pulse::getStatusColumn()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
/**
4
 * This file contains the Pulse class
5
 *
6
 * @copyright 2015 Vladimir Jimenez
7
 * @license   https://github.com/allejo/PhpPulse/blob/master/LICENSE.md MIT
8
 */
9
10
namespace allejo\DaPulse;
11
12
use allejo\DaPulse\Exceptions\InvalidColumnException;
13
use allejo\DaPulse\Exceptions\InvalidObjectException;
14
use allejo\DaPulse\Exceptions\KeyNotFoundException;
15
use allejo\DaPulse\Objects\ApiObject;
16
use allejo\DaPulse\Objects\PulseColumnStatusValue;
17
use allejo\DaPulse\Objects\PulseColumnDateValue;
18
use allejo\DaPulse\Objects\PulseColumnPersonValue;
19
use allejo\DaPulse\Objects\PulseColumnTextValue;
20
use allejo\DaPulse\Objects\PulseColumnValue;
21
use allejo\DaPulse\Utilities\ArrayUtilities;
22
23
/**
24
 * A class representing a single pulse in a board
25
 *
26
 * @api
27
 * @package allejo\DaPulse
28
 * @since 0.1.0
29
 */
30
class Pulse extends ApiObject
0 ignored issues
show
Coding Style introduced by
The property $updates_count is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $board_id is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $created_at is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $updated_at is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $group_id is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $column_structure is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $raw_column_values is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style introduced by
The property $column_values is not named in camelCase.

This check marks property names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
31
{
32
    /**
33
     * @ignore
34
     */
35
    const API_PREFIX = "pulses";
36
37
    // ================================================================================================================
38
    //   Instance Variables
39
    // ================================================================================================================
40
41
    /**
42
     * The resource's URL.
43
     *
44
     * @var string
45
     */
46
    protected $url;
47
48
    /**
49
     * The pulse's unique identifier.
50
     *
51
     * @var int
52
     */
53
    protected $id;
54
55
    /**
56
     * The pulse's name.
57
     *
58
     * @var string
59
     */
60
    protected $name;
61
62
    /**
63
     * The board's subscribers.
64
     *
65
     * @var PulseUser[]
66
     */
67
    protected $subscribers;
68
69
    /**
70
     * The amount of updates a pulse has.
71
     *
72
     * @var int
73
     */
74
    protected $updates_count;
75
76
    /**
77
     * The ID of the parent board.
78
     *
79
     * @var int
80
     */
81
    protected $board_id;
82
83
    /**
84
     * Creation time.
85
     *
86
     * @var \DateTime
87
     */
88
    protected $created_at;
89
90
    /**
91
     * Last update time.
92
     *
93
     * @var \DateTime
94
     */
95
    protected $updated_at;
96
97
    /**
98
     * The ID of the group this pulse belongs to
99
     *
100
     * @var string
101
     */
102
    protected $group_id;
103
104
    /**
105
     * @var PulseColumn[]
106
     */
107
    protected $column_structure;
108
109
    /**
110
     * An array containing all of the values a pulse has for each column
111
     *
112
     * @var mixed
113
     */
114
    protected $raw_column_values;
115
116
    /**
117
     * An array containing objects extended from PulseColumnValue storing all of the values for each column
118
     *
119
     * @var array
120
     */
121
    protected $column_values;
122
123
    /**
124
     * The common URL path for retrieving objects relating a pulse such as subscribers, notes, or updates
125
     *
126
     * @var string
127
     */
128
    private $urlSyntax = "%s/%s/%s.json";
129
130
    // ================================================================================================================
131
    //   Getter functions
132
    // ================================================================================================================
133
134
    /**
135
     * The resource's URL.
136
     *
137
     * @return string
138
     */
139
    public function getUrl()
140
    {
141
        return $this->url;
142
    }
143
144
    /**
145
     * The pulse's unique identifier.
146
     *
147
     * @return int
148
     */
149
    public function getId()
150
    {
151
        return $this->id;
152
    }
153
154
    /**
155
     * The pulse's name.
156
     *
157
     * @return string
158
     */
159
    public function getName()
160
    {
161
        return $this->name;
162
    }
163
164
    /**
165
     * The amount of updates a pulse has.
166
     *
167
     * @return int
168
     */
169
    public function getUpdatesCount()
170
    {
171
        return $this->updates_count;
172
    }
173
174
    /**
175
     * The ID of the parent board.
176
     *
177
     * @return int
178
     */
179
    public function getBoardId()
180
    {
181
        return $this->board_id;
182
    }
183
184
    /**
185
     * Creation time.
186
     *
187
     * @return \DateTime
188
     */
189
    public function getCreatedAt()
190
    {
191
        return $this->created_at;
192
    }
193
194
    /**
195
     * Last update time.
196
     *
197
     * @return \DateTime
198
     */
199
    public function getUpdatedAt()
200
    {
201
        return $this->updated_at;
202
    }
203
204
    // ================================================================================================================
205
    //   Pulse functions
206
    // ================================================================================================================
207
208
    /**
209
     * Delete the current Pulse
210
     *
211
     * @api
212
     * @throws \allejo\DaPulse\Exceptions\InvalidObjectException
213
     */
214 View Code Duplication
    public function deletePulse ()
0 ignored issues
show
Duplication introduced by
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.

Loading history...
215
    {
216
        $this->checkInvalid();
217
218
        $deleteURL = sprintf("%s/%d.json", self::apiEndpoint(), $this->getId());
219
220
        self::sendDelete($deleteURL);
221
222
        $this->deletedObject = true;
223
    }
224
225
    public function duplicatePulse ($group_id = null, $owner_id = null)
0 ignored issues
show
Coding Style Naming introduced by
The parameter $group_id is not named in camelCase.

This check marks parameter names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style Naming introduced by
The parameter $owner_id is not named in camelCase.

This check marks parameter names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
226
    {
227
        $url = sprintf("%s/%s/pulses/%s/duplicate.json", parent::apiEndpoint("boards"), $this->getBoardId(), $this->getId());
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of duplicatePulse()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
228
        $postParams = array();
229
230
        if ($owner_id instanceof PulseUser)
231
        {
232
            $owner_id = $owner_id->getId();
233
        }
234
235
        self::setIfNotNullOrEmpty($postParams, "group_id", $group_id);
236
        self::setIfNotNullOrEmpty($postParams, "owner_id", $owner_id);
237
238
        $result = self::sendPost($url, $postParams);
239
        $this->pulseInjection($result);
240
241
        return (new Pulse($result['pulse']));
242
    }
243
244 View Code Duplication
    private function pulseInjection (&$result)
0 ignored issues
show
Duplication introduced by
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.

Loading history...
245
    {
246
        $parentBoard = new PulseBoard($this->getBoardId());
247
248
        // Inject some information so a Pulse object can survive on its own
249
        $result["pulse"]["group_id"] = $result["board_meta"]["group_id"];
250
        $result["pulse"]["column_structure"] = $parentBoard->getColumns();
251
        $result["pulse"]["raw_column_values"] = $result["column_values"];
252
    }
253
254
    // ================================================================================================================
255
    //   Column data functions
256
    // ================================================================================================================
257
258
    /**
259
     * Access a pulse's specific column to either access their value or to modify the value.
260
     *
261
     * See the related functions to see the appropriate replacements.
262
     *
263
     * @todo This function only exists for legacy applications. Remove in 0.1.1
0 ignored issues
show
Coding Style introduced by
Comment refers to a TODO task

This check looks TODO comments that have been left in the code.

``TODO``s show that something is left unfinished and should be attended to.

Loading history...
264
     *
265
     * @api
266
     * @deprecated 0.0.1 This function will be removed by 0.1.1. New stricter functions are available
267
     *
268
*@param string $columnId The ID of the column to access. It's typically a slugified version of the column title
269
     *
270
*@see Pulse::getStatusColumn()  getColorColumn()
271
     * @see Pulse::getDateColumn()   getDateColumn()
272
     * @see Pulse::getPersonColumn() getPersonColumn()
273
     * @see Pulse::getTextColumn()   getTextColumn()
274
     * @since 0.1.0
275
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
276
     *                                by this library or the DaPulse API.
277
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
278
     * @return PulseColumnValue The returned object will be a child of this abstract class.
279
     */
280
    public function getColumnValue ($columnId)
281
    {
282
        if (!isset($this->column_values) || !array_key_exists($columnId, $this->column_values))
283
        {
284
            $key = ArrayUtilities::array_search_column($this->raw_column_values, 'cid', $columnId);
285
286
            $data = $this->raw_column_values[$key];
287
            $type = $this->column_structure[$key]->getType();
288
289
            $data['column_id'] = $data['cid'];
290
            $data['board_id'] = $this->getBoardId();
291
            $data['pulse_id'] = $this->getId();
292
293
            $this->column_values[$columnId] = PulseColumnValue::_createColumnType($type, $data);
294
        }
295
296
        return $this->column_values[$columnId];
297
    }
298
299
    /**
300
     * Access a color type column value belonging to this pulse in order to read it or modify.
301
     *
302
     * This function should only be used to access color type values; an exception will be thrown otherwise.
303
     *
304
     * @api
305
     *
306
*@param string $columnId The ID of the column to access. This is typically a slugified version of the column name
307
     *
308
*@since 0.1.0
309
     * @throws InvalidColumnException The specified column is not a "color" type column
310
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
311
     *                                by this library or the DaPulse API.
312
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
313
     * @return PulseColumnStatusValue A column object with access to its contents
314
     */
315
    public function getStatusColumn ($columnId)
316
    {
317
        return $this->getColumn($columnId, PulseColumn::Status);
318
    }
319
320
    /**
321
     * Access a date type column value belonging to this pulse in order to read it or modify.
322
     *
323
     * This function should only be used to access data type values; an exception will be thrown otherwise.
324
     *
325
     * @api
326
     * @param string $columnId The ID of the column to access. This is typically a slugified version of the column name
327
     * @since 0.1.0
328
     * @throws InvalidColumnException The specified column is not a "date" type column
329
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
330
     *                                by this library or the DaPulse API.
331
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
332
     * @return PulseColumnDateValue A column object with access to its contents
333
     */
334
    public function getDateColumn ($columnId)
335
    {
336
        return $this->getColumn($columnId, PulseColumn::Date);
337
    }
338
339
    /**
340
     * Access a person type column value belonging to this pulse in order to read it or modify.
341
     *
342
     * This function should only be used to access person type values; an exception will be thrown otherwise.
343
     *
344
     * @api
345
     * @param string $columnId The ID of the column to access. This is typically a slugified version of the column name
346
     * @since 0.1.0
347
     * @throws InvalidColumnException The specified column is not a "person" type column
348
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
349
     *                                by this library or the DaPulse API.
350
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
351
     * @return PulseColumnPersonValue A column object with access to its contents
352
     */
353
    public function getPersonColumn ($columnId)
354
    {
355
        return $this->getColumn($columnId, PulseColumn::Person);
356
    }
357
358
    /**
359
     * Access a text type column value belonging to this pulse in order to read it or modify.
360
     *
361
     * This function should only be used to access text type values; an exception will be thrown otherwise.
362
     *
363
     * @api
364
     * @param string $columnId The ID of the column to access. This is typically a slugified version of the column name
365
     * @since 0.1.0
366
     * @throws InvalidColumnException The specified column is not a "text" type column
367
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
368
     *                                by this library or the DaPulse API.
369
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
370
     * @return PulseColumnTextValue A column object with access to its contents
371
     */
372
    public function getTextColumn ($columnId)
373
    {
374
        return $this->getColumn($columnId, PulseColumn::Text);
375
    }
376
377
    /**
378
     * Build a pulse's column object if it doesn't exist or return the existing column.
379
     *
380
     * @param string $columnId   The ID of the column to access. This is typically a slugified version of the column
381
     *                           title
382
     * @param string $columnType The type of column being accessed: 'text', 'color', 'person', or 'date'
383
     *
384
     * @since 0.1.0
385
     *
386
     * @throws InvalidColumnException The specified column is not the same type as specified in `$columnType`
387
     * @throws InvalidObjectException The specified column exists but modification of its value is unsupported either
388
     *                                by this library or the DaPulse API.
389
     * @throws KeyNotFoundException   The specified column ID does not exist for this Pulse
390
     *
391
     * @return PulseColumnValue The returned object will be a child of this abstract class.
392
     */
393
    private function getColumn ($columnId, $columnType)
394
    {
395
        if (!isset($this->column_values) || !array_key_exists($columnId, $this->column_values))
396
        {
397
            $key = ArrayUtilities::array_search_column($this->raw_column_values, 'cid', $columnId);
398
399
            $data = $this->raw_column_values[$key];
400
            $type = $this->column_structure[$key]->getType();
401
402
            if ($type !== $columnType)
403
            {
404
                throw new InvalidColumnException("The '$columnId' column was expected to be '$columnType' but was '$type' instead.");
405
            }
406
407
            $data['column_id'] = $data['cid'];
408
            $data['board_id'] = $this->getBoardId();
409
            $data['pulse_id'] = $this->getId();
410
411
            $this->column_values[$columnId] = PulseColumnValue::_createColumnType($type, $data);
412
        }
413
414
        return $this->column_values[$columnId];
415
    }
416
417
    // ================================================================================================================
418
    //   Subscribers functions
419
    // ================================================================================================================
420
421
    /**
422
     * Access a pulse's subscribers
423
     *
424
     * To modify the amount of data returned with pagination, use the following values in the array to configure your
425
     * pagination or offsets.
426
     *
427
     * ```php
428
     * $params = array(
429
     *     "page"     => 1,  // (int) Page offset to fetch
430
     *     "per_page" => 10, // (int) Number of results per page
431
     *     "offset"   => 5,  // (int) Instead of starting at result 0, start counting from result 5
432
     * );
433
     * ```
434
     *
435
     * @api
436
     * @param array $params GET parameters passed to with the query to modify the data returned.
437
     * @since 0.1.0
438
     * @return PulseUser[]
439
     */
440
    public function getSubscribers ($params = array())
441
    {
442
        $url = sprintf($this->urlSyntax, parent::apiEndpoint(), $this->id, "subscribers");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of getSubscribers()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
443
444
        return parent::fetchJsonArrayToObjectArray($url, "PulseUser", $params);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (fetchJsonArrayToObjectArray() instead of getSubscribers()). Are you sure this is correct? If so, you might want to change this to $this->fetchJsonArrayToObjectArray().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
445
    }
446
447
    // ================================================================================================================
448
    //   Notes functions
449
    // ================================================================================================================
450
451
    /**
452
     * Create a new note in this project
453
     *
454
     * @api
455
     * @param  string   $title         The title of the note
456
     * @param  string   $content       The body of the note
457
     * @param  bool     $owners_only   Set to true if only pulse owners can edit this note.
458
     * @param  int|null $user_id       The id of the user to be marked as the note’s last updater
459
     * @param  bool     $create_update Indicates whether to create an update on the pulse notifying subscribers on the
460
     *                                 changes (required user_id to be set).
461
     * @since  0.1.0
462
     * @return PulseNote
463
     */
464
    public function addNote ($title, $content, $owners_only = false, $user_id = NULL, $create_update = false)
0 ignored issues
show
Coding Style Naming introduced by
The parameter $owners_only is not named in camelCase.

This check marks parameter names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style Naming introduced by
The parameter $user_id is not named in camelCase.

This check marks parameter names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
Coding Style Naming introduced by
The parameter $create_update is not named in camelCase.

This check marks parameter names that have not been written in camelCase.

In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes databaseConnectionString.

Loading history...
465
    {
466
        $url        = sprintf($this->urlSyntax, parent::apiEndpoint(), $this->id, "notes");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of addNote()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
467
        $postParams = array(
468
            "id"            => $this->id,
469
            "title"         => $title,
470
            "content"       => $content,
471
            "owners_only"   => $owners_only,
472
            "create_update" => $create_update
473
        );
474
475
        self::setIfNotNullOrEmpty($postParams, "user_id", $user_id);
476
477
        if ($create_update && is_null($user_id))
478
        {
479
            throw new \InvalidArgumentException("The user_id value must be set if an update is to be created");
480
        }
481
482
        $noteResult = self::sendPost($url, $postParams);
483
484
        return (new PulseNote($noteResult));
485
    }
486
487
    /**
488
     * Return all of the notes belonging to this project
489
     *
490
     * @api
491
     * @since  0.1.0
492
     * @return PulseNote[]
493
     */
494
    public function getNotes ()
495
    {
496
        $url = sprintf($this->urlSyntax, parent::apiEndpoint(), $this->id, "notes");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of getNotes()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
497
498
        return parent::fetchJsonArrayToObjectArray($url, "PulseNote");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (fetchJsonArrayToObjectArray() instead of getNotes()). Are you sure this is correct? If so, you might want to change this to $this->fetchJsonArrayToObjectArray().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
499
    }
500
501
    // ================================================================================================================
502
    //   Updates functions
503
    // ================================================================================================================
504
505
    /**
506
     * Get all of the updates that belong this Pulse
507
     *
508
     * @api
509
     * @since 0.1.0
510
     * @return PulseUpdate[]
511
     */
512
    public function getUpdates ()
513
    {
514
        $url = sprintf($this->urlSyntax, parent::apiEndpoint(), $this->id, "updates");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of getUpdates()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
515
516
        return parent::fetchJsonArrayToObjectArray($url, "PulseUpdate");
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (fetchJsonArrayToObjectArray() instead of getUpdates()). Are you sure this is correct? If so, you might want to change this to $this->fetchJsonArrayToObjectArray().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
517
    }
518
519
    // ================================================================================================================
520
    //   Static functions
521
    // ================================================================================================================
522
523
    /**
524
     * Get all of the pulses that belong to the organization across all boards.
525
     *
526
     * To modify the amount of data returned with pagination, use the following values in the array to configure your
527
     * pagination or offsets.
528
     *
529
     * ```php
530
     * $params = array(
531
     *     "page"     => 1,          // (int) Page offset to fetch
532
     *     "per_page" => 10,         // (int) Number of results per page
533
     *     "offset"   => 5,          // (int) Instead of starting at result 0, start counting from result 5
534
     *     "order_by_latest" => true // (bool) Order the pulses with the most recent first
535
     * );
536
     * ```
537
     *
538
     * @api
539
     * @param array $params GET parameters passed to with the query to modify the data returned.
540
     * @since 0.1.0
541
     * @return Pulse[]
542
     */
543
    public static function getPulses ($params = array())
544
    {
545
        $url = sprintf("%s.json", parent::apiEndpoint());
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (apiEndpoint() instead of getPulses()). Are you sure this is correct? If so, you might want to change this to $this->apiEndpoint().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
546
547
        return parent::fetchJsonArrayToObjectArray($url, "Pulse", $params);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (fetchJsonArrayToObjectArray() instead of getPulses()). Are you sure this is correct? If so, you might want to change this to $this->fetchJsonArrayToObjectArray().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
548
    }
549
}