quark-publisher 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|