Rebuild   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 51
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getBody() 0 5 1
A __construct() 0 10 4
1
<?php
2
namespace Billow\Actions;
3
use InvalidArgumentException;
4
5
/**
6
 * @author Matt Frost<[email protected]>
7
 * @package Billow
8
 * @subpackage Actions
9
 * @license http://opensource.org/licenses/MIT MIT
10
 */
11
class Rebuild extends Action
12
{
13
    /**
14
     * Action parameter
15
     *
16
     * @const ACTION
17
     */
18
    const ACTION = 'rebuild';
19
20
    /**
21
     * Action HTTP Method
22
     *
23
     * @const method
24
     */
25
    const METHOD = 'POST';
26
27
    /**
28
     * Image slug or ID
29
     *
30
     * @var mixed image
31
     */
32
    protected $image;
33
34
    /**
35
     * Constructor for rebuild action
36
     *
37
     * @param Array $values
38
     * @throws \InvalidArgumentException
39
     */
40 7
    public function __construct(Array $values)
41
    {
42 7
        if (!isset($values['image'])) {
43 1
            throw new InvalidArgumentException('Required value "image" is not present');
44
        }
45
46 6
        if (!is_numeric($values['image']) && !is_string($values['image'])) {
47 3
            throw new InvalidArgumentException("Image argument must be a slug or ID");
48
        }
49 3
        $this->image = $values['image'];
50 3
    }
51
52
    /**
53
     * Return the body of the request
54
     *
55
     * @return string json representation of the body
56
     */
57 2
    public function getBody()
58
    {
59 2
        return json_encode([
60 2
            'type' => self::ACTION,
61 2
            'image' => $this->image
62
        ]);
63
    }
64
}
65
66