quark-publisher 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/Gemfile.lock +16 -0
- data/lib/quark/publisher/asset.rb +22 -0
- data/lib/quark/publisher/asset_binary.rb +20 -0
- data/lib/quark/publisher/{document.rb → collection.rb} +1 -1
- data/lib/quark/publisher/request.rb +40 -0
- data/lib/quark/publisher/saved_query.rb +35 -0
- data/lib/quark/publisher/service_error.rb +6 -0
- data/lib/quark/publisher/version.rb +1 -1
- data/lib/quark/publisher.rb +13 -1
- data/quark-publisher.gemspec +2 -0
- metadata +36 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4b995d0efcbbaf4ea9b37d19e9e4f80afc08325619e9be315ead3752df9e549
|
4
|
+
data.tar.gz: ac638014e6c038580235c5ef7a5db26651e814eecd2022be8344ba0e6a86b77f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63a03d137e6cf773fa5ce3e9becd493ddf7f548fc8fe42fc92a88954a9d8509192ac93df1d7d4479b226e6804e177435967ffdb07cc666f890f318a5680c9479
|
7
|
+
data.tar.gz: 56deadb9ec9bf723f339076be5e640c3a3d06b0375fdace60409d8e9118d3ab1179446af8bea7059f5575254cbfb70f97deff51ace5020a07118c6b539435693
|
data/Gemfile.lock
CHANGED
@@ -2,14 +2,24 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
quark-publisher (0.1.0)
|
5
|
+
activesupport (~> 5.2)
|
6
|
+
faraday (~> 0.14)
|
5
7
|
nokogiri (~> 1.8)
|
6
8
|
|
7
9
|
GEM
|
8
10
|
remote: https://rubygems.org/
|
9
11
|
specs:
|
12
|
+
activesupport (5.2.1)
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
|
+
i18n (>= 0.7, < 2)
|
15
|
+
minitest (~> 5.1)
|
16
|
+
tzinfo (~> 1.1)
|
10
17
|
ansi (1.5.0)
|
11
18
|
builder (3.2.3)
|
12
19
|
coderay (1.1.2)
|
20
|
+
concurrent-ruby (1.0.5)
|
21
|
+
faraday (0.14.0)
|
22
|
+
multipart-post (>= 1.2, < 3)
|
13
23
|
ffi (1.9.25)
|
14
24
|
formatador (0.2.5)
|
15
25
|
guard (2.14.2)
|
@@ -25,6 +35,8 @@ GEM
|
|
25
35
|
guard-minitest (2.4.6)
|
26
36
|
guard-compat (~> 1.2)
|
27
37
|
minitest (>= 3.0)
|
38
|
+
i18n (1.1.0)
|
39
|
+
concurrent-ruby (~> 1.0)
|
28
40
|
listen (3.1.5)
|
29
41
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
30
42
|
rb-inotify (~> 0.9, >= 0.9.7)
|
@@ -38,6 +50,7 @@ GEM
|
|
38
50
|
builder
|
39
51
|
minitest (>= 5.0)
|
40
52
|
ruby-progressbar
|
53
|
+
multipart-post (2.0.0)
|
41
54
|
nenv (0.3.0)
|
42
55
|
nokogiri (1.8.4)
|
43
56
|
mini_portile2 (~> 2.3.0)
|
@@ -55,6 +68,9 @@ GEM
|
|
55
68
|
ruby_dep (1.5.0)
|
56
69
|
shellany (0.0.1)
|
57
70
|
thor (0.20.0)
|
71
|
+
thread_safe (0.3.6)
|
72
|
+
tzinfo (1.2.5)
|
73
|
+
thread_safe (~> 0.1)
|
58
74
|
|
59
75
|
PLATFORMS
|
60
76
|
ruby
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Quark
|
2
|
+
module Publisher
|
3
|
+
module Asset
|
4
|
+
def self.get_by_id(id, include_children: false)
|
5
|
+
response = self.send_request(id, include_children: include_children)
|
6
|
+
Nokogiri::XML(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
# Method used to send the request -- exists for easy testing purposes
|
12
|
+
#
|
13
|
+
# @return [Faraday::Response]
|
14
|
+
def self.send_request(id, include_children: false)
|
15
|
+
Quark::Publisher::Request.get do |request|
|
16
|
+
request.path = request.path + "/assets/#{id}"
|
17
|
+
request.params['includechildren'] = include_children
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Quark
|
2
|
+
module Publisher
|
3
|
+
module AssetBinary
|
4
|
+
def self.get_by_id(id)
|
5
|
+
self.send_request(id).body
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
# Method used to send the request -- exists for easy testing purposes
|
11
|
+
#
|
12
|
+
# @return [Faraday::Response]
|
13
|
+
def self.send_request(id)
|
14
|
+
Quark::Publisher::Request.get do |request|
|
15
|
+
request.path = request.path + "/assets/#{id}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
3
|
+
module Quark
|
4
|
+
module Publisher
|
5
|
+
module Request
|
6
|
+
def self.get # :yields: [Faraday::Request] Yields a request object.
|
7
|
+
conn = Faraday.new(url: Quark::Publisher.configuration.base_uri)
|
8
|
+
conn.ssl.verify_mode = OpenSSL::SSL::VERIFY_NONE unless Isaca.configuration.verify_ssl
|
9
|
+
|
10
|
+
response = conn.get do |request|
|
11
|
+
set_default_request_options(request)
|
12
|
+
yield(request) if block_given?
|
13
|
+
end
|
14
|
+
|
15
|
+
if response.success?
|
16
|
+
return response
|
17
|
+
else
|
18
|
+
xml = Nokogiri::XML(response.body)
|
19
|
+
exception_code = xml.xpath("//exceptionCode")
|
20
|
+
|
21
|
+
if exception_code.text
|
22
|
+
reason = exception_code.text
|
23
|
+
else
|
24
|
+
reason = 'unknown'
|
25
|
+
end
|
26
|
+
|
27
|
+
raise ServiceError.new "Error when calling Quark Publisher. [Status Code: #{response.status}] #{reason}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def self.set_default_request_options(request)
|
34
|
+
request.path = URI(Quark::Publisher.configuration.base_uri).path
|
35
|
+
request.params['loginname'] = Quark::Publisher.configuration.username
|
36
|
+
request.params['loginpassword'] = Quark::Publisher.configuration.password
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Quark
|
2
|
+
module Publisher
|
3
|
+
module SavedQuery
|
4
|
+
def self.get(named_query)
|
5
|
+
response = self.send_request(named_query)
|
6
|
+
hash_assets_response(response.body)
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def self.send_request(named_query)
|
12
|
+
Quark::Publisher::Request.get do |request|
|
13
|
+
request.path = request.path + "/search/#{named_query}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.hash_assets_response(response)
|
18
|
+
xml = Nokogiri::XML(response)
|
19
|
+
assets = xml.xpath("//assetInfo")
|
20
|
+
|
21
|
+
assets.collect do |asset|
|
22
|
+
hash = { id: asset.attr('id') }
|
23
|
+
|
24
|
+
asset.children.children.each do |attribute|
|
25
|
+
if attribute.instance_of?(Nokogiri::XML::Element)
|
26
|
+
hash[attribute.attr('name').parameterize.underscore.to_sym] = attribute.text.gsub("\n", '')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
hash
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/quark/publisher.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require "quark/publisher/version"
|
2
|
-
require "quark/publisher/
|
2
|
+
require "quark/publisher/service_error"
|
3
|
+
require "quark/publisher/request"
|
4
|
+
require "quark/publisher/asset"
|
5
|
+
require "quark/publisher/asset_binary"
|
6
|
+
require "quark/publisher/collection"
|
7
|
+
require "quark/publisher/saved_query"
|
3
8
|
|
4
9
|
module Quark
|
5
10
|
module Publisher
|
@@ -73,6 +78,13 @@ module Quark
|
|
73
78
|
#
|
74
79
|
# Quark::Publisher.configure {|config| config.base_uri = 'https://quarkendpoint.com/api/'}
|
75
80
|
attr_accessor :base_uri
|
81
|
+
|
82
|
+
# If Quark Publisher library should verify ssl
|
83
|
+
#
|
84
|
+
# You can set verify ssl in the configuration for this library. Defaults to true.
|
85
|
+
#
|
86
|
+
# Quark::Publisher.configure {|config| config.verify_ssl = true}
|
87
|
+
attr_accessor :verify_ssl
|
76
88
|
end
|
77
89
|
end
|
78
90
|
end
|
data/quark-publisher.gemspec
CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
24
|
spec.add_dependency "nokogiri", "~> 1.8"
|
25
|
+
spec.add_dependency "faraday", "~> 0.14"
|
26
|
+
spec.add_dependency "activesupport", "~> 5.2"
|
25
27
|
spec.add_development_dependency "bundler", "~> 1.16"
|
26
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
29
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quark-publisher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Orahood
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.14'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.14'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.2'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: bundler
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,7 +153,12 @@ files:
|
|
125
153
|
- bin/console
|
126
154
|
- bin/setup
|
127
155
|
- lib/quark/publisher.rb
|
128
|
-
- lib/quark/publisher/
|
156
|
+
- lib/quark/publisher/asset.rb
|
157
|
+
- lib/quark/publisher/asset_binary.rb
|
158
|
+
- lib/quark/publisher/collection.rb
|
159
|
+
- lib/quark/publisher/request.rb
|
160
|
+
- lib/quark/publisher/saved_query.rb
|
161
|
+
- lib/quark/publisher/service_error.rb
|
129
162
|
- lib/quark/publisher/version.rb
|
130
163
|
- quark-publisher.gemspec
|
131
164
|
homepage:
|