Completed
Push — master ( 40e591...8b2a4b )
by Alex
03:04
created

SubnetController::slavesRecursive()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 5
rs 10
1
<?php
2
3
namespace Axsor\PhpIPAM\Http\Controllers;
4
5
use Axsor\PhpIPAM\Http\Requests\SubnetRequest;
6
use Axsor\PhpIPAM\Models\Address;
7
use Axsor\PhpIPAM\Models\CustomField;
8
use Axsor\PhpIPAM\Models\Data;
9
use Axsor\PhpIPAM\Models\Subnet;
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