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

SubnetController   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 25
c 1
b 0
f 0
dl 0
loc 84
rs 10
wmc 12

12 Methods

Rating   Name   Duplication   Size   Complexity  
A byCidr() 0 5 1
A freeSubnets() 0 5 1
A ip() 0 5 1
A slavesRecursive() 0 5 1
A usage() 0 5 1
A show() 0 5 1
A customFields() 0 5 1
A addresses() 0 5 1
A freeAddress() 0 5 1
A freeSubnet() 0 5 1
A slaves() 0 5 1
A __construct() 0 3 1
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