File Coverage

blib/lib/WWW/SnipeIT/Hardware.pm
Criterion Covered Total %
statement 18 136 13.2
branch n/a
condition n/a
subroutine 6 18 33.3
pod n/a
total 24 154 15.5


line stmt bran cond sub pod time code
1             package WWW::SnipeIT::Hardware;
2 1     1   8 use Modern::Perl '2018';
  1         3  
  1         10  
3              
4 1     1   429 use Object::Pad;
  1         5  
  1         7  
5 1     1   1275 use URI;
  1         13217  
  1         76  
6              
7 1     1   552 use HTTP::Request;
  1         24700  
  1         57  
8 1     1   1042 use LWP::UserAgent;
  1         53418  
  1         243  
9 1     1   1252 use JSON::XS;
  1         7930  
  1         251  
10              
11              
12             class Hardware {
13              
14             field $endpoint :param;
15             field $header :param;
16              
17 0     0     method getHardwareIDByAssetTag ($assetTag) {
  0            
  0            
  0            
18 0           my $url = $endpoint."hardware/bytag/".$assetTag;
19 0           my $r = HTTP::Request->new('GET', $url, $header);
20 0           my $ua = LWP::UserAgent->new();
21 0           my $res = $ua->request($r);
22 0           my $results = JSON::XS::decode_json($res->{_content});
23              
24 0           return $results->{'id'}
25             }
26              
27 0     0     method getHardwareByAssetTag ($assetTag) {
  0            
  0            
  0            
28 0           my $url = $endpoint."hardware/bytag/".$assetTag;
29 0           my $r = HTTP::Request->new('GET', $url, $header);
30 0           my $ua = LWP::UserAgent->new();
31 0           my $res = $ua->request($r);
32 0           my $results = JSON::XS::decode_json($res->{_content});
33              
34 0           return $results
35             }
36              
37 0     0     method getHardwareBySerialNumber ($serialNumber) {
  0            
  0            
  0            
38 0           my $url = $endpoint."hardware/byserial/".$serialNumber;
39 0           my $r = HTTP::Request->new('GET', $url, $header);
40 0           my $ua = LWP::UserAgent->new();
41 0           my $res = $ua->request($r);
42 0           my $results = JSON::XS::decode_json($res->{_content});
43              
44 0           return $results
45             }
46              
47 0     0     method getAssetTagByHardwareID ($hardwareID) {
  0            
  0            
  0            
48 0           my $url = $endpoint."hardware/".$hardwareID;
49 0           my $r = HTTP::Request->new('GET', $url, $header);
50 0           my $ua = LWP::UserAgent->new();
51 0           my $res = $ua->request($r);
52 0           my $results = JSON::XS::decode_json($res->{_content});
53              
54 0           return $results->{'asset_tag'}
55             }
56              
57 0     0     method updateAssetByHardwareID ($hardwareID, $body) {
  0            
  0            
  0            
  0            
58 0           my $url = $endpoint."hardware/".$hardwareID;
59 0           my $r = HTTP::Request->new('PUT', $url, $header, $body);
60 0           my $ua = LWP::UserAgent->new();
61 0           my $res = $ua->request($r);
62             }
63              
64 0     0     method updateAssetByAssetTag ($assetTag, $body) {
  0            
  0            
  0            
  0            
65 0           my $hardwareID = ($self->getHardwareIDByAssetTag($assetTag));
66 0           $self->updateAssetByHardwareID ($hardwareID, $body)
67             }
68              
69 0     0     method getHardwareByCustomField ($fieldName, $fieldValue, $itemType = 'asset') {
  0            
  0            
  0            
  0            
  0            
70 0           my $url = $endpoint."hardware?".$fieldName."=".$fieldValue."&item_type=".$itemType;
71 0           my $r = HTTP::Request->new('GET', $url, $header);
72 0           my $ua = LWP::UserAgent->new();
73 0           my $res = $ua->request($r);
74 0           my $results = JSON::XS::decode_json($res->{_content});
75              
76 0           return $results;
77             }
78              
79 0     0     method getHistoryByHardwareID ($hardwareID, $itemType = 'asset') {
  0            
  0            
  0            
  0            
80 0           my $url = $endpoint."reports/activity?item_id=".$hardwareID."&item_type=".$itemType;
81 0           my $r = HTTP::Request->new('GET', $url, $header);
82 0           my $ua = LWP::UserAgent->new();
83 0           my $res = $ua->request($r);
84 0           my $results = JSON::XS::decode_json($res->{_content});
85 0           return $results;
86             }
87              
88 0     0     method getHistoryByAssetTag ($assetTag, $itemType = 'asset') {
  0            
  0            
  0            
  0            
89 0           my $hardwareID = ($self->getHardwareIDByAssetTag($assetTag));
90 0           return $self->getHistoryByHardwareID($hardwareID);
91             }
92              
93 0     0     method searchHardware ($searchString) {
  0            
  0            
  0            
94 0           my $url = $endpoint."hardware?search=".$searchString;
95 0           my $r = HTTP::Request->new('GET', $url, $header);
96 0           my $ua = LWP::UserAgent->new();
97 0           my $res = $ua->request($r);
98 0           my $results = JSON::XS::decode_json($res->{_content});
99              
100 0           return $results;
101             }
102              
103 0     0     method getHardwareByCategory ($searchString) {
  0            
  0            
  0            
104 0           my $url = $endpoint."hardware?category_id=".$searchString;
105 0           my $r = HTTP::Request->new('GET', $url, $header);
106 0           my $ua = LWP::UserAgent->new();
107 0           my $res = $ua->request($r);
108 0           my $results = JSON::XS::decode_json($res->{_content});
109              
110 0           return $results;
111             }
112              
113 0     0     method getHardware (%params) {
  0            
  0            
  0            
114 0           my $uri = URI->new($endpoint."hardware");
115 0           while (my ($key, $value) = each %params) {
116 0           $uri->query_param($key => $value);
117             }
118 0           my $r = HTTP::Request->new('GET', $uri->as_string, $header);
119 0           my $ua = LWP::UserAgent->new();
120 0           my $res = $ua->request($r);
121 0           my $results = JSON::XS::decode_json($res->{_content});
122              
123 0           return $results;
124             }
125             }
126              
127             1;