moesif_api 2.0.2 → 2.1.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 +4 -4
- data/lib/moesif_api/configuration.rb +5 -2
- data/lib/moesif_api/controllers/base_controller.rb +6 -1
- data/lib/moesif_api/http/faraday_client.rb +11 -4
- data/lib/moesif_api/moesif_api_client.rb +2 -1
- data/test/controllers/controller_test_base.rb +2 -2
- data/test/controllers/test_api_controller.rb +77 -0
- data/test/test_helper.rb +1 -1
- metadata +20 -15
- data/lib/moesif_api.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4df54ebc345c812cec2fcea15554f134b13106a4e8f7081330afde4aab75be21
|
4
|
+
data.tar.gz: c0d0b57c8d1d804c3f80730f140bae583173fb2755cfae68a00a0123425fa0d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 533086975aaf0c04f403e374195c6cd5489cf155e00335e6a9927788b81681f715f2bb305ee918d31a06d937fbc00726e67f601e14db98753ded8bb43fab91d1
|
7
|
+
data.tar.gz: d586ba59a922b9a3c371b68b022dc940863d778ef8de6a4112f6cdd04293955f9bf308d2e3ba7e6998c5da6ffd5e3083c0b4138561236581481cc7db836d4dc8
|
@@ -8,9 +8,11 @@ module MoesifApi
|
|
8
8
|
# Your Application Id for authentication/authorization
|
9
9
|
@application_id = 'SET_ME'
|
10
10
|
|
11
|
-
@version = '2.
|
11
|
+
@version = '2.1.1'
|
12
12
|
|
13
|
-
@user_agent = "moesifapi-ruby/2.
|
13
|
+
@user_agent = "moesifapi-ruby/2.1.1"
|
14
|
+
|
15
|
+
@retry_count = 5
|
14
16
|
|
15
17
|
# create the getters and setters
|
16
18
|
class << self
|
@@ -18,6 +20,7 @@ module MoesifApi
|
|
18
20
|
attr_accessor :application_id
|
19
21
|
attr_accessor :version
|
20
22
|
attr_accessor :user_agent
|
23
|
+
attr_accessor :retry_count
|
21
24
|
end
|
22
25
|
end
|
23
26
|
end
|
@@ -19,8 +19,13 @@ module MoesifApi
|
|
19
19
|
|
20
20
|
def validate_response(context)
|
21
21
|
return if context.response.status_code.between?(200, 208) # [200,208] = HTTP OK
|
22
|
+
res = context.response;
|
22
23
|
|
23
|
-
|
24
|
+
if res.nil?
|
25
|
+
raise APIException.new 'No Http Response, maybe timeout', context
|
26
|
+
else
|
27
|
+
raise APIException.new 'HTTP Response Not OK ' + res.status_code.to_s + ' ' + res.raw_body.to_s, context
|
28
|
+
end
|
24
29
|
end
|
25
30
|
|
26
31
|
end
|
@@ -1,15 +1,22 @@
|
|
1
1
|
require 'faraday'
|
2
|
-
require 'faraday/net_http_persistent'
|
3
|
-
require 'faraday/retry'
|
4
2
|
require 'json'
|
5
3
|
|
4
|
+
faraday_version = Gem.loaded_specs['faraday'].version
|
5
|
+
|
6
|
+
# in faraday < 2.0 net_http_persistent and retry is build into faraday already
|
7
|
+
# in faraday >= 2.0 we must require these plugins
|
8
|
+
if faraday_version >= Gem::Version.new('2.0')
|
9
|
+
require 'faraday/net_http_persistent'
|
10
|
+
require 'faraday/retry'
|
11
|
+
end
|
12
|
+
|
6
13
|
module MoesifApi
|
7
14
|
class FaradayClient < HttpClient
|
8
15
|
def initialize
|
9
16
|
super()
|
10
17
|
retry_options = {
|
11
|
-
max:
|
12
|
-
interval: 0.
|
18
|
+
max: Configuration.retry_count,
|
19
|
+
interval: 0.2,
|
13
20
|
interval_randomness: 0.5,
|
14
21
|
backoff_factor: 2
|
15
22
|
}
|
@@ -15,8 +15,9 @@ module MoesifApi
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# Initializer with authentication and configuration parameters
|
18
|
-
def initialize(application_id, user_agent=nil)
|
18
|
+
def initialize(application_id, user_agent=nil, retry_count=5)
|
19
19
|
Configuration.application_id = application_id
|
20
|
+
Configuration.retry_count = retry_count
|
20
21
|
unless user_agent.nil?
|
21
22
|
Configuration.user_agent = user_agent
|
22
23
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'json'
|
4
4
|
require 'test/unit'
|
5
|
-
|
5
|
+
require_relative '../../lib/moesif_api.rb'
|
6
6
|
require_relative '../test_helper.rb'
|
7
7
|
require_relative '../http_response_catcher.rb'
|
8
8
|
|
@@ -15,7 +15,7 @@ class ControllerTestBase < Test::Unit::TestCase
|
|
15
15
|
|
16
16
|
# Called only once for a test class before any test has executed.
|
17
17
|
def self.startup
|
18
|
-
@@api_client = MoesifAPIClient.new("
|
18
|
+
@@api_client = MoesifAPIClient.new("Your Moesif Application Id")
|
19
19
|
@@request_timeout = 30
|
20
20
|
@@assert_precision = 0.01
|
21
21
|
end
|
@@ -85,6 +85,83 @@ class ApiControllerTests < ControllerTestBase
|
|
85
85
|
assert_equal(@response_catcher.response.status_code, 201)
|
86
86
|
end
|
87
87
|
|
88
|
+
def test_add_bad_event()
|
89
|
+
# Parameters for the API call
|
90
|
+
|
91
|
+
req_headers = JSON.parse('{'\
|
92
|
+
'"Host": "api.acmeinc.com",'\
|
93
|
+
'"Accept": "*/*",'\
|
94
|
+
'"Connection": "Keep-Alive",'\
|
95
|
+
'"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)",'\
|
96
|
+
'"Content-Type": "application/json",'\
|
97
|
+
'"Content-Length": "126",'\
|
98
|
+
'"Accept-Encoding": "gzip"'\
|
99
|
+
'}')
|
100
|
+
|
101
|
+
req_body = JSON.parse( '{'\
|
102
|
+
'"items": ['\
|
103
|
+
'{'\
|
104
|
+
'"type": 1,'\
|
105
|
+
'"id": "fwfrf"'\
|
106
|
+
'},'\
|
107
|
+
'{'\
|
108
|
+
'"type": 2,'\
|
109
|
+
'"id": "d43d3f"'\
|
110
|
+
'}'\
|
111
|
+
']'\
|
112
|
+
'}')
|
113
|
+
|
114
|
+
rsp_headers = JSON.parse('{'\
|
115
|
+
'"Date": "Tue, 6 Jan 2019 23:46:49 GMT",'\
|
116
|
+
'"Vary": "Accept-Encoding",'\
|
117
|
+
'"Pragma": "no-cache",'\
|
118
|
+
'"Expires": "-1",'\
|
119
|
+
'"Content-Type": "application/json; charset=utf-8",'\
|
120
|
+
'"Cache-Control": "no-cache"'\
|
121
|
+
'}')
|
122
|
+
|
123
|
+
rsp_body = JSON.parse('{'\
|
124
|
+
'"Error": "InvalidArgumentException",'\
|
125
|
+
'"Message": "Missing field field_a"'\
|
126
|
+
'}')
|
127
|
+
|
128
|
+
metadata = JSON.parse('{'\
|
129
|
+
'"foo": "rubytestmeta",'\
|
130
|
+
'"bar": "rubytestmedat2"'\
|
131
|
+
'}')
|
132
|
+
|
133
|
+
event_req = EventRequestModel.new()
|
134
|
+
event_req.time = Time.now.utc.iso8601
|
135
|
+
event_req.uri = nil
|
136
|
+
event_req.verb = "POST"
|
137
|
+
event_req.api_version = "1.1.0"
|
138
|
+
event_req.ip_address = "61.48.220.123"
|
139
|
+
event_req.headers = req_headers
|
140
|
+
event_req.body = req_body
|
141
|
+
|
142
|
+
event_rsp = EventResponseModel.new()
|
143
|
+
event_rsp.time = (Time.now.utc + 2).iso8601
|
144
|
+
event_rsp.status = 400
|
145
|
+
event_rsp.headers = rsp_headers
|
146
|
+
event_rsp.body = rsp_body
|
147
|
+
|
148
|
+
event_model = EventModel.new()
|
149
|
+
event_model.request = event_req
|
150
|
+
event_model.response = event_rsp
|
151
|
+
event_model.user_id = "my_user_id"
|
152
|
+
event_model.company_id = "my_company_id"
|
153
|
+
event_model.metadata = metadata
|
154
|
+
event_model.session_token = "random"
|
155
|
+
|
156
|
+
# Perform the API call through the SDK function
|
157
|
+
|
158
|
+
error = assert_raises(APIException) do
|
159
|
+
self.class.controller.create_event(event_model)
|
160
|
+
end
|
161
|
+
puts 'error: ' + error.message;
|
162
|
+
assert_match(/422|400/, error.message, "The error message should contain '422' or '400'")
|
163
|
+
end
|
164
|
+
|
88
165
|
# Add Batched Events via Ingestion API
|
89
166
|
def test_add_batched_events()
|
90
167
|
# Parameters for the API call
|
data/test/test_helper.rb
CHANGED
@@ -84,7 +84,7 @@ class TestHelper
|
|
84
84
|
if not @cache.keys.include? url
|
85
85
|
@cache[url] = Tempfile.new('APIMatic')
|
86
86
|
@cache[url].binmode
|
87
|
-
@cache[url].write(open(url,
|
87
|
+
@cache[url].write(File.open(url, 'rb').read)
|
88
88
|
else
|
89
89
|
@cache[url].open
|
90
90
|
@cache[url].binmode
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moesif_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Moesif, Inc
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-11-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: test-unit
|
@@ -35,44 +35,50 @@ dependencies:
|
|
35
35
|
name: faraday
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- - "<"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
43
|
+
version: '3.0'
|
41
44
|
type: :runtime
|
42
45
|
prerelease: false
|
43
46
|
version_requirements: !ruby/object:Gem::Requirement
|
44
47
|
requirements:
|
45
|
-
- - "
|
48
|
+
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
50
|
+
version: '1.0'
|
51
|
+
- - "<"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.0'
|
48
54
|
- !ruby/object:Gem::Dependency
|
49
55
|
name: faraday-net_http_persistent
|
50
56
|
requirement: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - "
|
58
|
+
- - "<"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
60
|
+
version: '3.0'
|
55
61
|
type: :runtime
|
56
62
|
prerelease: false
|
57
63
|
version_requirements: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - "<"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '3.0'
|
62
68
|
- !ruby/object:Gem::Dependency
|
63
69
|
name: faraday-retry
|
64
70
|
requirement: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - "<"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
74
|
+
version: '3.0'
|
69
75
|
type: :runtime
|
70
76
|
prerelease: false
|
71
77
|
version_requirements: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- - "
|
79
|
+
- - "<"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
81
|
+
version: '3.0'
|
76
82
|
- !ruby/object:Gem::Dependency
|
77
83
|
name: json_mapper
|
78
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,7 +115,6 @@ extra_rdoc_files: []
|
|
109
115
|
files:
|
110
116
|
- LICENSE
|
111
117
|
- README.md
|
112
|
-
- lib/moesif_api.rb
|
113
118
|
- lib/moesif_api/api_helper.rb
|
114
119
|
- lib/moesif_api/configuration.rb
|
115
120
|
- lib/moesif_api/controllers/api_controller.rb
|
data/lib/moesif_api.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'openssl'
|
3
|
-
require 'json'
|
4
|
-
|
5
|
-
# Exceptions
|
6
|
-
require_relative 'moesif_api/exceptions/api_exception.rb'
|
7
|
-
|
8
|
-
# Helper Files
|
9
|
-
require_relative 'moesif_api/api_helper.rb'
|
10
|
-
require_relative 'moesif_api/configuration.rb'
|
11
|
-
require_relative 'moesif_api/moesif_api_client.rb'
|
12
|
-
|
13
|
-
# Http
|
14
|
-
require_relative 'moesif_api/http/http_call_back.rb'
|
15
|
-
require_relative 'moesif_api/http/http_client.rb'
|
16
|
-
require_relative 'moesif_api/http/http_method_enum.rb'
|
17
|
-
require_relative 'moesif_api/http/http_request.rb'
|
18
|
-
require_relative 'moesif_api/http/http_response.rb'
|
19
|
-
require_relative 'moesif_api/http/http_context.rb'
|
20
|
-
require_relative 'moesif_api/http/faraday_client.rb'
|
21
|
-
|
22
|
-
# Models
|
23
|
-
require_relative 'moesif_api/models/base_model.rb'
|
24
|
-
require_relative 'moesif_api/models/event_request_model.rb'
|
25
|
-
require_relative 'moesif_api/models/event_model.rb'
|
26
|
-
require_relative 'moesif_api/models/event_response_model.rb'
|
27
|
-
require_relative 'moesif_api/models/status_model.rb'
|
28
|
-
require_relative 'moesif_api/models/user_model.rb'
|
29
|
-
require_relative 'moesif_api/models/company_model.rb'
|
30
|
-
require_relative 'moesif_api/models/campaign_model.rb'
|
31
|
-
|
32
|
-
# Controllers
|
33
|
-
require_relative 'moesif_api/controllers/base_controller.rb'
|
34
|
-
require_relative 'moesif_api/controllers/api_controller.rb'
|
35
|
-
require_relative 'moesif_api/controllers/health_controller.rb'
|