PulseColumnTextValue::updateValue()   A
last analyzed

Complexity

Conditions 4
Paths 2

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 17
c 0
b 0
f 0
ccs 10
cts 10
cp 1
rs 9.7
cc 4
nc 2
nop 1
crap 4
1
<?php
2
3
/**
4
 * @copyright 2017 Vladimir Jimenez
5
 * @license   https://github.com/allejo/PhpPulse/blob/master/LICENSE.md MIT
6
 */
7
8
namespace allejo\DaPulse\Objects;
9
10
use allejo\DaPulse\Exceptions\ColumnNotFoundException;
11
12
/**
13
 * Class PulseColumnTextValue
14
 *
15
 * @package allejo\DaPulse\Objects
16
 * @since   0.1.0
17
 */
18
class PulseColumnTextValue extends PulseColumnValue
19
{
20
    /**
21
     * Get a text column's content
22
     *
23
     * @api
24
     *
25
     * @since  0.4.0 ColumnNotFoundException is now thrown
26
     * @since  0.1.0
27
     *
28
     * @throws ColumnNotFoundException The specified column ID does not exist for the parent Pulse
29
     *
30
     * @return string|null The column's content
31
     */
32 2
    public function getValue ()
33
    {
34 2
        return parent::getValue();
35
    }
36
37
    /**
38
     * Update the text of a text column
39
     *
40
     * @api
41
     *
42
     * @param string $text
43
     *
44
     * @since 0.3.0 \InvalidArgumentException is now thrown
45
     * @since 0.1.0
46
     *
47
     * @throws \InvalidArgumentException if $text does not have a string representation
48
     */
49 3
    public function updateValue ($text)
50
    {
51 3
        if (!is_scalar($text) || (is_object($text) && method_exists($text, '__toString')))
52
        {
53 2
            throw new \InvalidArgumentException('$text is expected to have a string representation');
54
        }
55
56 1
        $url        = sprintf("%s/%d/columns/%s/text.json", self::apiEndpoint(), $this->board_id, $this->column_id);
57
        $postParams = [
58 1
            "pulse_id" => $this->pulse_id,
59 1
            "text"     => (string)$text
60
        ];
61
62 1
        $result = self::sendPut($url, $postParams);
63 1
        $this->jsonResponse = $result;
0 ignored issues
show
Documentation Bug introduced by
It seems like $result of type * is incompatible with the declared type array of property $jsonResponse.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
64 1
        $this->setValue($result);
65 1
    }
66
67 2
    protected function setValue ($response)
68
    {
69 2
        $this->column_value = $response["value"];
70
    }
71
}