hudu 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile +2 -1
- data/README.md +14 -11
- data/Rakefile +8 -0
- data/bin/cc-test-reporter.exe +0 -0
- data/hudu.gemspec +2 -1
- data/lib/hudu/asset_helper.rb +20 -0
- data/lib/hudu/client.rb +14 -3
- data/lib/hudu/version.rb +1 -1
- metadata +21 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f48ff08cda4008e20930d883e35caec1e4558ba6ca5a66bb3b0caae36565679
|
4
|
+
data.tar.gz: 060e661b7be43f050cf6511728cfadb4a892e582fd56d3ecb588dd89a64e9bf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85010f142ca7b9b2427ca6d654365c949ca4a36de7373029989343cdcb3b83af2668db2500232cd6cca5a95cd2bf52b6092ce203feb1a81595d404fc292cb188
|
7
|
+
data.tar.gz: 38323855457d5c411143aa1526d839f007428838e039712dfd76fae9bc23ac06f05f7c249506cd716abc369f55d8d6e40d026aa11355a6d83d4c5027f58ff91c
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
|
5
|
-
# Specify your gem's dependencies in
|
5
|
+
# Specify your gem's dependencies in hudu.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
gem 'rake', '~> 13.0'
|
9
9
|
gem 'rubocop', '~> 1.7'
|
10
|
+
gem 'simplecov', require: false, group: :test
|
10
11
|
gem 'wrapi'
|
data/README.md
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# Hudu API
|
2
|
+
[](https://rubygems.org/gems/hudu)
|
3
|
+
[](https://codeclimate.com/github/jancotanis/hudu/maintainability)
|
4
|
+
[](https://codeclimate.com/github/jancotanis/hudu/test_coverage)
|
2
5
|
|
3
|
-
This is a wrapper for the Hudu rest API.
|
6
|
+
This is a wrapper for the Hudu rest API.
|
4
7
|
|
5
8
|
Currently only the GET requests to get a list of hosts, host groups and problems are implemented.
|
6
9
|
|
@@ -75,19 +78,19 @@ end
|
|
75
78
|
|:--|:--|
|
76
79
|
|.api_info | /api/v1/api_info|
|
77
80
|
|.activity_logs | /api/v1/activity_logs|
|
78
|
-
|.companies,
|
79
|
-
|.articles,
|
80
|
-
|.asset_layouts,
|
81
|
-
|.assets,
|
81
|
+
|.companies, company(id) | /api/v1/companies/{id}|
|
82
|
+
|.articles, article(id) | /api/v1/articles/{id}|
|
83
|
+
|.asset_layouts, asset_layout(id) | /api/v1/asset_layouts/{id}|
|
84
|
+
|.assets, asset(id) | /api/v1/assets/{id}|
|
82
85
|
|.asset_passwords | /api/v1/asset_passwords/{id}|
|
83
|
-
|.folders,
|
84
|
-
|.procedures,
|
86
|
+
|.folders, folder(id) | /api/v1/folders/{id}|
|
87
|
+
|.procedures, procedure(id) | /api/v1/procedures/{id}|
|
85
88
|
|.expirations | /api/v1/expirations|
|
86
|
-
|.websites,
|
89
|
+
|.websites, website(id) | /api/v1/websites/{id}|
|
87
90
|
|.relations | /api/v1/relations|
|
88
|
-
|.company_articles(id)
|
89
|
-
|.company_assets(id)
|
90
|
-
|.company_asset(id,asset_id)
|
91
|
+
|.company_articles(id) | /api/v1/companies/{id}/articles|
|
92
|
+
|.company_assets(id) | /api/v1/companies/{id}/assets|
|
93
|
+
|.company_asset(id,asset_id) | /api/v1/companies/{id}/assets/{asset_id}|
|
91
94
|
|
92
95
|
|
93
96
|
## Publishing
|
data/Rakefile
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
|
+
require 'dotenv'
|
4
5
|
require 'rake/testtask'
|
5
6
|
|
7
|
+
Dotenv.load
|
8
|
+
|
9
|
+
system './bin/cc-test-reporter before-build'
|
10
|
+
|
6
11
|
Rake::TestTask.new(:test) do |t|
|
7
12
|
t.libs << 'test'
|
8
13
|
t.libs << 'lib'
|
9
14
|
t.test_files = FileList['test/**/*_test.rb']
|
15
|
+
at_exit do
|
16
|
+
system './bin/cc-test-reporter after-build'
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
require 'rubocop/rake_task'
|
Binary file
|
data/hudu.gemspec
CHANGED
@@ -29,8 +29,9 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
30
30
|
s.platform = Gem::Platform::RUBY
|
31
31
|
s.add_runtime_dependency 'faraday'
|
32
|
-
s.add_runtime_dependency 'wrapi', ">= 0.
|
32
|
+
s.add_runtime_dependency 'wrapi', ">= 0.3.0"
|
33
33
|
s.add_development_dependency 'dotenv'
|
34
34
|
s.add_development_dependency 'minitest'
|
35
|
+
s.add_development_dependency 'simplecov'
|
35
36
|
s.add_development_dependency 'rubocop'
|
36
37
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Hudu
|
2
|
+
|
3
|
+
class AssetHelper
|
4
|
+
# Construct asset for updates, assuem it is an entity
|
5
|
+
def self.construct_asset asset
|
6
|
+
custom_asset = asset.attributes.slice( *%w(
|
7
|
+
id company_id asset_layout_id slug name
|
8
|
+
primary_serial primary_model primary_mail
|
9
|
+
primary_manufacturer )
|
10
|
+
)
|
11
|
+
custom_asset['custom_fields'] = self.custom_fields(asset.fields)
|
12
|
+
{ asset: custom_asset }
|
13
|
+
end
|
14
|
+
private
|
15
|
+
def self.custom_fields(fields)
|
16
|
+
[fields.map{|field| [field.label.downcase.gsub(' ','_'),field.value]}.to_h]
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
data/lib/hudu/client.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require File.expand_path('api', __dir__)
|
2
|
+
require File.expand_path('asset_helper', __dir__)
|
2
3
|
|
3
4
|
module Hudu
|
4
5
|
# Wrapper for the Hudu REST API
|
@@ -17,7 +18,7 @@ module Hudu
|
|
17
18
|
end
|
18
19
|
# record by id
|
19
20
|
self.send(:define_method, singular_method) do |id, params = {}|
|
20
|
-
r = get(api_url("#{path}
|
21
|
+
r = get(api_url("#{path}/#{id}"), params)
|
21
22
|
r = hudu_data(r,singular_method)
|
22
23
|
end
|
23
24
|
else
|
@@ -26,6 +27,12 @@ module Hudu
|
|
26
27
|
get(api_url(path), params)
|
27
28
|
end
|
28
29
|
end
|
30
|
+
# update
|
31
|
+
self.send(:define_method, "update_#{method}") do |id=nil,params = {}|
|
32
|
+
r = post(api_url("#{path}/#{id}"), params)
|
33
|
+
r = hudu_data(r,method)
|
34
|
+
end
|
35
|
+
|
29
36
|
end
|
30
37
|
|
31
38
|
public
|
@@ -47,11 +54,11 @@ module Hudu
|
|
47
54
|
api_endpoint :expirations
|
48
55
|
api_endpoint :websites, :website
|
49
56
|
api_endpoint :relations
|
57
|
+
api_endpoint :magic_dash
|
50
58
|
|
51
59
|
def company_articles( company_id, params = {} )
|
52
|
-
articles({company_id: company_id}.merge(
|
60
|
+
articles({company_id: company_id}.merge(params))
|
53
61
|
end
|
54
|
-
|
55
62
|
def company_assets(id,params={})
|
56
63
|
get_paged(api_url("companies/#{id}/assets"), params)
|
57
64
|
end
|
@@ -59,6 +66,10 @@ module Hudu
|
|
59
66
|
get(api_url("companies/#{id}/assets/#{asset_id}"), params)
|
60
67
|
end
|
61
68
|
|
69
|
+
def update_company_asset(asset)
|
70
|
+
put(api_url("companies/#{asset.company_id}/assets/#{asset.id}"), AssetHelper.construct_asset(asset))
|
71
|
+
end
|
72
|
+
|
62
73
|
# return api path
|
63
74
|
def api_url path
|
64
75
|
"/api/v1/#{path}"
|
data/lib/hudu/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hudu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Janco Tanis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: dotenv
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rubocop
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,9 +106,11 @@ files:
|
|
92
106
|
- Gemfile
|
93
107
|
- README.md
|
94
108
|
- Rakefile
|
109
|
+
- bin/cc-test-reporter.exe
|
95
110
|
- hudu.gemspec
|
96
111
|
- lib/hudu.rb
|
97
112
|
- lib/hudu/api.rb
|
113
|
+
- lib/hudu/asset_helper.rb
|
98
114
|
- lib/hudu/authentication.rb
|
99
115
|
- lib/hudu/client.rb
|
100
116
|
- lib/hudu/configuration.rb
|
@@ -122,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
138
|
- !ruby/object:Gem::Version
|
123
139
|
version: '0'
|
124
140
|
requirements: []
|
125
|
-
rubygems_version: 3.2.
|
141
|
+
rubygems_version: 3.2.3
|
126
142
|
signing_key:
|
127
143
|
specification_version: 4
|
128
144
|
summary: A Ruby wrapper for the Hudu APIs (readonly)
|