ruby-miradore 0.1.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d8c368a1181c4b4fc018a7cc4a78a5a4dc68e681e6ff4ada43eee4fb412db6f4
4
- data.tar.gz: 4c09338936fa847d3f0cb02497db1ad0afa0515cdce7b8d268ff5d7e03728c0a
3
+ metadata.gz: ae4429c886f0c83f4f8e45ed0e5ca2c8a33b3c3b170e60c0061180a476ed5edf
4
+ data.tar.gz: f8ee91a7f7893fbc7a1b43976a5673ee0d8aed2e5cf40097862a182b5127e453
5
5
  SHA512:
6
- metadata.gz: 5bfc76b919333a1955dafe1c84ec0b5ec0ef4ad8572c5e6c4959a657a11b0a431838878c558688f1f124164a5f0fe2fc7cae8d830d7b927647ee9886542e77dc
7
- data.tar.gz: 2a97c7a25e6f859cc48fdba90f86036e3e93f68f39dc1e7a56144fda431d2a0d0bd674740ecb7e968e73d82472aef78e66583b76feec5927d4b28890f5b72c54
6
+ metadata.gz: 29c3cba4f3ec8e0708a737c9217de99caed9880bc3b24e56b220c5cac27f148e3acba2fb53a2715340a2ee379fa67ea5c12b4cfb66297a7477b515fc95e79520
7
+ data.tar.gz: 199c7dddd4b12a9c79ee411a9bdca3ac314afa12db5c9c7d5a0a63fc29151352fbf2834f51eba0a96cdb688ec2e7280aa4a036824ef7fd13f773c76e79ecbce2
data/Gemfile CHANGED
@@ -4,9 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in ruby-miradore.gemspec
6
6
  gemspec
7
-
8
- gem "rake", "~> 13.0"
9
- gem "rspec", "~> 3.0"
10
- gem "rubocop", "~> 1.7"
11
- gem "httparty"
12
- gem "finest-builder", "~> 0.0.4"
data/Gemfile.lock ADDED
@@ -0,0 +1,69 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ruby-miradore (0.2.1)
5
+ crack (~> 0.4.5)
6
+ finest-builder (~> 0.0.4)
7
+ httparty (~> 0.18.1)
8
+ rake (~> 13.0)
9
+ rspec (~> 3.0)
10
+ rubocop (~> 1.7)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ ast (2.4.2)
16
+ crack (0.4.5)
17
+ rexml
18
+ diff-lcs (1.4.4)
19
+ finest-builder (0.0.5)
20
+ httparty (0.18.1)
21
+ mime-types (~> 3.0)
22
+ multi_xml (>= 0.5.2)
23
+ mime-types (3.3.1)
24
+ mime-types-data (~> 3.2015)
25
+ mime-types-data (3.2021.0225)
26
+ multi_xml (0.6.0)
27
+ parallel (1.20.1)
28
+ parser (3.0.1.1)
29
+ ast (~> 2.4.1)
30
+ rainbow (3.0.0)
31
+ rake (13.0.3)
32
+ regexp_parser (2.1.1)
33
+ rexml (3.2.5)
34
+ rspec (3.10.0)
35
+ rspec-core (~> 3.10.0)
36
+ rspec-expectations (~> 3.10.0)
37
+ rspec-mocks (~> 3.10.0)
38
+ rspec-core (3.10.1)
39
+ rspec-support (~> 3.10.0)
40
+ rspec-expectations (3.10.1)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.10.0)
43
+ rspec-mocks (3.10.2)
44
+ diff-lcs (>= 1.2.0, < 2.0)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-support (3.10.2)
47
+ rubocop (1.13.0)
48
+ parallel (~> 1.10)
49
+ parser (>= 3.0.0.0)
50
+ rainbow (>= 2.2.2, < 4.0)
51
+ regexp_parser (>= 1.8, < 3.0)
52
+ rexml
53
+ rubocop-ast (>= 1.2.0, < 2.0)
54
+ ruby-progressbar (~> 1.7)
55
+ unicode-display_width (>= 1.4.0, < 3.0)
56
+ rubocop-ast (1.5.0)
57
+ parser (>= 3.0.1.1)
58
+ ruby-progressbar (1.11.0)
59
+ unicode-display_width (2.0.0)
60
+
61
+ PLATFORMS
62
+ x86_64-darwin-20
63
+ x86_64-linux
64
+
65
+ DEPENDENCIES
66
+ ruby-miradore!
67
+
68
+ BUNDLED WITH
69
+ 2.2.15
data/lib/ruby/miradore.rb CHANGED
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "miradore/version"
4
+ require 'httparty'
5
+ require 'json'
6
+ require 'crack/xml'
7
+ require 'finest/builder'
4
8
 
5
9
  module Ruby
6
10
  module Miradore
7
- class Error < StandardError; end
8
-
9
- @@msp_api_key = ENV['MSP_API_KEY']
11
+ class MspConnectionError < StandardError; end
10
12
 
11
13
  def self.api_key
12
- @@msp_api_key
14
+ @@msp_api_key = ENV['MSP_API_KEY']
13
15
  end
14
16
 
15
17
  def self.api_urls
@@ -23,19 +25,22 @@ module Ruby
23
25
  Miradore::api_urls[version] % { subdomain: args[0], id: args[1], method: args[2], auth: Miradore::api_key }
24
26
  end
25
27
 
26
- class Request
28
+ class Listing
27
29
  include HTTParty
28
30
  format :json
29
31
 
30
32
  attr_reader :subdomain
31
33
 
32
34
  def self.all(subdomain, *args)
33
- response = JSON.parse(Hash.from_trusted_xml(get(Miradore::url(:v1, subdomain)).body).to_json, :quirks_mode => true).dig("Content", "Items", "Device")
35
+ response = JSON.parse(Crack::XML.parse(get(Miradore::url(:v1, subdomain)).body).to_json, :quirks_mode => true).dig("Content", "Items", "Device")
36
+
34
37
  if response.is_a?(Array)
35
38
  response.map! { |e| Device.new(e.transform_keys(&:downcase), subdomain) }
36
39
  else
37
40
  Device.new(response.transform_keys(&:downcase), subdomain)
38
41
  end
42
+ rescue StandardError
43
+ raise MspConnectionError.new("Error connecting to manager service provider")
39
44
  end
40
45
 
41
46
  end
@@ -78,6 +83,8 @@ module Ruby
78
83
  def http_method(*args)
79
84
  self.class.headers 'X-API-Key' => Miradore::api_key
80
85
  self.class.method(args[0]).call(Miradore::url(:v2, subdomain, args[1], args[2]))
86
+ rescue StandardError
87
+ raise MspConnectionError.new("Error connecting to manager service provider")
81
88
  end
82
89
 
83
90
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ruby
4
4
  module Miradore
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.1"
6
6
  end
7
7
  end
Binary file
Binary file
@@ -31,6 +31,12 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  # Uncomment to register a new dependency of your gem
33
33
  # spec.add_dependency "example-gem", "~> 1.0"
34
+ spec.add_dependency "rake", "~> 13.0"
35
+ spec.add_dependency "rspec", "~> 3.0"
36
+ spec.add_dependency "rubocop", "~> 1.7"
37
+ spec.add_dependency "httparty", "~> 0.18.1"
38
+ spec.add_dependency "finest-builder", "~> 0.0.4"
39
+ spec.add_dependency "crack", "~> 0.4.5"
34
40
 
35
41
  # For more information and examples about making a new gem, checkout our
36
42
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,15 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-miradore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-29 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-05-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '13.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: httparty
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.18.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.18.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: finest-builder
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.0.4
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.0.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: crack
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.4.5
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.4.5
13
97
  description: Miradore MSP Ruby Gem
14
98
  email:
15
99
  - eduard@rzilient.club
@@ -24,6 +108,7 @@ files:
24
108
  - CHANGELOG.md
25
109
  - CODE_OF_CONDUCT.md
26
110
  - Gemfile
111
+ - Gemfile.lock
27
112
  - LICENSE.txt
28
113
  - README.md
29
114
  - Rakefile
@@ -31,6 +116,8 @@ files:
31
116
  - bin/setup
32
117
  - lib/ruby/miradore.rb
33
118
  - lib/ruby/miradore/version.rb
119
+ - ruby-miradore-0.1.0.gem
120
+ - ruby-miradore-0.1.1.gem
34
121
  - ruby-miradore.gemspec
35
122
  homepage: https://github.com/eddygarcas/ruby-miradore
36
123
  licenses:
@@ -55,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
142
  - !ruby/object:Gem::Version
56
143
  version: '0'
57
144
  requirements: []
58
- rubygems_version: 3.1.4
145
+ rubygems_version: 3.1.6
59
146
  signing_key:
60
147
  specification_version: 4
61
148
  summary: Miradore is a MSP providing an API to get devices information as well s perform