Passed
Push — master ( 1c967b...a5ecf6 )
by Alex
03:16
created

SubnetController::resize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Axsor\PhpIPAM\Http\Controllers;
4
5
use Axsor\PhpIPAM\Models\Data;
6
use Axsor\PhpIPAM\Models\Subnet;
7
use Axsor\PhpIPAM\Models\Address;
8
use Axsor\PhpIPAM\Models\CustomField;
9
use Axsor\PhpIPAM\Http\Requests\SubnetRequest;
10
11
class SubnetController
12
{
13
    protected $request;
14
15
    public function __construct()
16
    {
17
        $this->request = new SubnetRequest;
18
    }
19
20
    public function show($subnet)
21
    {
22
        $response = $this->request->show($subnet);
23
24
        return new Subnet($response['data']);
25
    }
26
27
    public function usage($subnet)
28
    {
29
        $response = $this->request->usage($subnet);
30
31
        return new Data($response['data']);
32
    }
33
34
    public function freeAddress($subnet)
35
    {
36
        $response = $this->request->freeAddress($subnet);
37
38
        return get_key_or_null($response, 'data');
39
    }
40
41
    public function slaves($subnet)
42
    {
43
        $response = $this->request->slaves($subnet);
44
45
        return response_to_collect($response, Subnet::class);
46
    }
47
48
    public function slavesRecursive($subnet)
49
    {
50
        $response = $this->request->slavesRecursive($subnet);
51
52
        return response_to_collect($response, Subnet::class);
53
    }
54
55
    public function addresses($subnet)
56
    {
57
        $response = $this->request->addresses($subnet);
58
59
        return response_to_collect($response, Address::class);
60
    }
61
62
    public function ip($subnet, string $ip)
63
    {
64
        $response = $this->request->ip($subnet, $ip);
65
66
        return response_to_collect($response, Address::class);
67
    }
68
69
    public function freeSubnet($subnet, int $mask)
70
    {
71
        $response = $this->request->freeSubnet($subnet, $mask);
72
73
        return get_key_or_null($response);
74
    }
75
76
    public function freeSubnets($subnet, int $mask)
77
    {
78
        $response = $this->request->freeSubnets($subnet, $mask);
79
80
        return response_to_collect($response);
81
    }
82
83
    public function customFields()
84
    {
85
        $response = $this->request->customFields();
86
87
        return response_to_collect($response, CustomField::class);
88
    }
89
90
    public function byCidr(string $cidr)
91
    {
92
        $response = $this->request->byCidr($cidr);
93
94
        return response_to_collect($response, Subnet::class);
95
    }
96
97
    public function create(array $data)
98
    {
99
        $response = $this->request->create($data);
100
101
        return get_key_or_null($response, 'id');
102
    }
103
104
    public function createInSubnet($subnet, array $data)
105
    {
106
        $response = $this->request->createInSubnet($subnet, $data);
107
108
        return get_key_or_null($response, 'id');
109
    }
110
111
    public function update($subnet, array $newData)
112
    {
113
        $response = $this->request->update($subnet, $newData);
114
115
        return (boolean) $response['success'];
116
    }
117
118
    public function resize($subnet, int $mask)
119
    {
120
        $response = $this->request->resize($subnet, $mask);
121
122
        return (boolean) $response;
123
    }
124
125
    public function split($subnet, int $number)
126
    {
127
        $response = $this->request->split($subnet, $number);
128
129
        return (boolean) $response['success'];
130
    }
131
132
    public function drop($subnet)
133
    {
134
        $response = $this->request->drop($subnet);
135
136
        return (boolean) $response['success'];
137
    }
138
139
    public function truncate($subnet)
140
    {
141
        $response = $this->request->truncate($subnet);
142
143
        return (boolean) $response['success'];
144
    }
145
}
146