leanplum_api 3.1.0 → 4.0.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/README.md +63 -32
- data/lib/leanplum_api/api.rb +107 -156
- data/lib/leanplum_api/configuration.rb +9 -1
- data/lib/leanplum_api/connection.rb +2 -2
- data/lib/leanplum_api/data_export_api.rb +78 -0
- data/lib/leanplum_api/faraday_middleware/response_validation.rb +23 -19
- data/lib/leanplum_api/version.rb +1 -1
- data/spec/api_spec.rb +142 -98
- data/spec/configuration_spec.rb +2 -2
- data/spec/data_export_api_spec.rb +57 -0
- data/spec/fixtures/vcr/delete_user.yml +129 -0
- data/spec/fixtures/vcr/export_data.yml +5 -5
- data/spec/fixtures/vcr/export_data_dates.yml +6 -6
- data/spec/fixtures/vcr/export_user.yml +7 -7
- data/spec/fixtures/vcr/export_users.yml +44 -0
- data/spec/fixtures/vcr/get_ab_test.yml +5 -5
- data/spec/fixtures/vcr/get_ab_tests.yml +5 -5
- data/spec/fixtures/vcr/get_export_results.yml +5 -5
- data/spec/fixtures/vcr/get_messages.yml +5 -5
- data/spec/fixtures/vcr/get_vars.yml +5 -5
- data/spec/fixtures/vcr/missing_message.yml +4 -4
- data/spec/fixtures/vcr/reset_anomalous_user.yml +6 -6
- data/spec/fixtures/vcr/set_device_attributes.yml +46 -0
- data/spec/fixtures/vcr/set_user_attributes.yml +7 -7
- data/spec/fixtures/vcr/set_user_attributes_with_devices.yml +46 -0
- data/spec/fixtures/vcr/set_user_attributes_with_devices_and_events.yml +46 -0
- data/spec/fixtures/vcr/set_user_attributes_with_events.yml +46 -0
- data/spec/fixtures/vcr/track_events.yml +8 -8
- data/spec/fixtures/vcr/track_events_and_attributes.yml +9 -9
- data/spec/fixtures/vcr/track_events_anomaly_overrider.yml +20 -19
- data/spec/fixtures/vcr/track_offline_events.yml +8 -8
- data/spec/http_spec.rb +6 -5
- data/spec/spec_helper.rb +11 -8
- metadata +40 -3
@@ -2,11 +2,11 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_PRODUCTION_KEY>&devMode=false&time=
|
5
|
+
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_PRODUCTION_KEY>&devMode=false&time=1505372950
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"action":"track","event":"purchase","userId":123456,"time":
|
9
|
-
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":
|
8
|
+
string: '{"data":[{"action":"track","event":"purchase","userId":123456,"time":1505372950,"allowOffline":true,"params":{"some_timestamp":"2015-05-01
|
9
|
+
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":1505372350,"allowOffline":true}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
12
|
- Faraday v0.13.1
|
@@ -26,22 +26,22 @@ http_interactions:
|
|
26
26
|
Content-Type:
|
27
27
|
- application/json;charset=utf-8
|
28
28
|
X-Cloud-Trace-Context:
|
29
|
-
-
|
29
|
+
- edb9c1a488ab44bc4cc2714a91edfc10
|
30
30
|
Set-Cookie:
|
31
|
-
- GOOGAPPUID=
|
31
|
+
- GOOGAPPUID=xCgoIAxBLIJnX6M0F; expires=Tue, 03-Nov-2020 03:11:21 GMT; path=/
|
32
32
|
Date:
|
33
|
-
-
|
33
|
+
- Thu, 14 Sep 2017 07:11:21 GMT
|
34
34
|
Server:
|
35
35
|
- Google Frontend
|
36
36
|
Content-Length:
|
37
37
|
- '82'
|
38
38
|
Expires:
|
39
|
-
-
|
39
|
+
- Thu, 14 Sep 2017 07:11:21 GMT
|
40
40
|
Cache-Control:
|
41
41
|
- private
|
42
42
|
body:
|
43
43
|
encoding: UTF-8
|
44
44
|
string: '{"response":[{"success":true,"isOffline":true},{"success":true,"isOffline":true}]}'
|
45
45
|
http_version:
|
46
|
-
recorded_at:
|
46
|
+
recorded_at: Thu, 14 Sep 2017 07:09:10 GMT
|
47
47
|
recorded_with: VCR 3.0.3
|
data/spec/http_spec.rb
CHANGED
@@ -1,22 +1,23 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
describe LeanplumApi::Connection do
|
4
2
|
let(:http) { described_class.new(LeanplumApi.configuration.production_key) }
|
3
|
+
|
5
4
|
def argument_string(dev_mode)
|
6
5
|
"appId=#{LeanplumApi.configuration.app_id}&clientKey=#{LeanplumApi.configuration.production_key}&apiVersion=1.0.6&devMode=#{dev_mode}&action=multi&time=#{Time.now.utc.strftime('%s')}"
|
7
6
|
end
|
8
7
|
|
9
8
|
context 'regular mode' do
|
9
|
+
before do
|
10
|
+
LeanplumApi.configure { |c| c.developer_mode = false }
|
11
|
+
end
|
12
|
+
|
10
13
|
it 'should build the right multi url' do
|
11
14
|
expect(http.send(:authed_multi_param_string)).to eq(argument_string(false))
|
12
15
|
end
|
13
16
|
end
|
14
17
|
|
15
18
|
context 'devMode' do
|
16
|
-
|
19
|
+
before do
|
17
20
|
LeanplumApi.configure { |c| c.developer_mode = true }
|
18
|
-
example.run
|
19
|
-
LeanplumApi.configure { |c| c.developer_mode = false }
|
20
21
|
end
|
21
22
|
|
22
23
|
it 'should build the right developer mode url' do
|
data/spec/spec_helper.rb
CHANGED
@@ -3,26 +3,29 @@ require 'rspec'
|
|
3
3
|
require 'timecop'
|
4
4
|
require 'webmock'
|
5
5
|
require 'vcr'
|
6
|
+
require 'dotenv/load'
|
6
7
|
|
7
8
|
DEFAULT_SPEC_KEY = 'JUNKTASTIC_SPASMASTIC'
|
8
9
|
|
9
10
|
RSpec.configure do |config|
|
10
11
|
config.before(:all) do
|
11
|
-
LeanplumApi.configure do |
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
LeanplumApi.configure do |config|
|
13
|
+
config.production_key = ENV['LEANPLUM_PRODUCTION_KEY'] || DEFAULT_SPEC_KEY
|
14
|
+
config.app_id = ENV['LEANPLUM_APP_ID'] || DEFAULT_SPEC_KEY
|
15
|
+
config.data_export_key = ENV['LEANPLUM_DATA_EXPORT_KEY'] || DEFAULT_SPEC_KEY
|
16
|
+
config.content_read_only_key = ENV['LEANPLUM_CONTENT_READ_ONLY_KEY'] || DEFAULT_SPEC_KEY
|
17
|
+
config.development_key = ENV['LEANPLUM_DEVELOPMENT_KEY'] || DEFAULT_SPEC_KEY
|
18
|
+
|
19
|
+
config.logger.level = config.debug_mode? ? Logger::DEBUG : Logger::FATAL
|
18
20
|
end
|
19
21
|
|
20
22
|
# Leanplum requires passing the time in some requests so we freeze it.
|
21
|
-
Timecop.freeze('2017-09-
|
23
|
+
Timecop.freeze('2017-09-14T07:09:10.787Z'.to_time)
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
25
27
|
VCR.configure do |c|
|
28
|
+
c.allow_http_connections_when_no_cassette = true
|
26
29
|
c.cassette_library_dir = 'spec/fixtures/vcr'
|
27
30
|
c.hook_into :webmock
|
28
31
|
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leanplum_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lumos Labs, Inc.
|
8
|
+
- Countable Corp
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
12
|
+
date: 2017-09-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
@@ -134,9 +135,30 @@ dependencies:
|
|
134
135
|
- - ">"
|
135
136
|
- !ruby/object:Gem::Version
|
136
137
|
version: '2'
|
138
|
+
- !ruby/object:Gem::Dependency
|
139
|
+
name: dotenv
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '2.2'
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 2.2.1
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - "~>"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '2.2'
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 2.2.1
|
137
158
|
description: Ruby-esque access to Leanplum API
|
138
159
|
email:
|
139
160
|
- analytics-dev@lumoslabs.com
|
161
|
+
- eng@countable.us
|
140
162
|
executables: []
|
141
163
|
extensions: []
|
142
164
|
extra_rdoc_files: []
|
@@ -148,14 +170,18 @@ files:
|
|
148
170
|
- lib/leanplum_api/api.rb
|
149
171
|
- lib/leanplum_api/configuration.rb
|
150
172
|
- lib/leanplum_api/connection.rb
|
173
|
+
- lib/leanplum_api/data_export_api.rb
|
151
174
|
- lib/leanplum_api/faraday_middleware/response_validation.rb
|
152
175
|
- lib/leanplum_api/logger.rb
|
153
176
|
- lib/leanplum_api/version.rb
|
154
177
|
- spec/api_spec.rb
|
155
178
|
- spec/configuration_spec.rb
|
179
|
+
- spec/data_export_api_spec.rb
|
180
|
+
- spec/fixtures/vcr/delete_user.yml
|
156
181
|
- spec/fixtures/vcr/export_data.yml
|
157
182
|
- spec/fixtures/vcr/export_data_dates.yml
|
158
183
|
- spec/fixtures/vcr/export_user.yml
|
184
|
+
- spec/fixtures/vcr/export_users.yml
|
159
185
|
- spec/fixtures/vcr/get_ab_test.yml
|
160
186
|
- spec/fixtures/vcr/get_ab_tests.yml
|
161
187
|
- spec/fixtures/vcr/get_export_results.yml
|
@@ -163,7 +189,11 @@ files:
|
|
163
189
|
- spec/fixtures/vcr/get_vars.yml
|
164
190
|
- spec/fixtures/vcr/missing_message.yml
|
165
191
|
- spec/fixtures/vcr/reset_anomalous_user.yml
|
192
|
+
- spec/fixtures/vcr/set_device_attributes.yml
|
166
193
|
- spec/fixtures/vcr/set_user_attributes.yml
|
194
|
+
- spec/fixtures/vcr/set_user_attributes_with_devices.yml
|
195
|
+
- spec/fixtures/vcr/set_user_attributes_with_devices_and_events.yml
|
196
|
+
- spec/fixtures/vcr/set_user_attributes_with_events.yml
|
167
197
|
- spec/fixtures/vcr/track_events.yml
|
168
198
|
- spec/fixtures/vcr/track_events_and_attributes.yml
|
169
199
|
- spec/fixtures/vcr/track_events_anomaly_overrider.yml
|
@@ -182,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
212
|
requirements:
|
183
213
|
- - ">="
|
184
214
|
- !ruby/object:Gem::Version
|
185
|
-
version: 2.
|
215
|
+
version: '2.0'
|
186
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
217
|
requirements:
|
188
218
|
- - ">="
|
@@ -197,9 +227,12 @@ summary: Gem for the Leanplum API
|
|
197
227
|
test_files:
|
198
228
|
- spec/api_spec.rb
|
199
229
|
- spec/configuration_spec.rb
|
230
|
+
- spec/data_export_api_spec.rb
|
231
|
+
- spec/fixtures/vcr/delete_user.yml
|
200
232
|
- spec/fixtures/vcr/export_data.yml
|
201
233
|
- spec/fixtures/vcr/export_data_dates.yml
|
202
234
|
- spec/fixtures/vcr/export_user.yml
|
235
|
+
- spec/fixtures/vcr/export_users.yml
|
203
236
|
- spec/fixtures/vcr/get_ab_test.yml
|
204
237
|
- spec/fixtures/vcr/get_ab_tests.yml
|
205
238
|
- spec/fixtures/vcr/get_export_results.yml
|
@@ -207,7 +240,11 @@ test_files:
|
|
207
240
|
- spec/fixtures/vcr/get_vars.yml
|
208
241
|
- spec/fixtures/vcr/missing_message.yml
|
209
242
|
- spec/fixtures/vcr/reset_anomalous_user.yml
|
243
|
+
- spec/fixtures/vcr/set_device_attributes.yml
|
210
244
|
- spec/fixtures/vcr/set_user_attributes.yml
|
245
|
+
- spec/fixtures/vcr/set_user_attributes_with_devices.yml
|
246
|
+
- spec/fixtures/vcr/set_user_attributes_with_devices_and_events.yml
|
247
|
+
- spec/fixtures/vcr/set_user_attributes_with_events.yml
|
211
248
|
- spec/fixtures/vcr/track_events.yml
|
212
249
|
- spec/fixtures/vcr/track_events_and_attributes.yml
|
213
250
|
- spec/fixtures/vcr/track_events_anomaly_overrider.yml
|