leanplum_api 1.4.2 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -9
- data/lib/leanplum_api/api.rb +9 -1
- data/lib/leanplum_api/connections/production.rb +1 -0
- data/lib/leanplum_api/version.rb +1 -1
- data/spec/api_spec.rb +24 -17
- data/spec/fixtures/vcr/export_data.yml +4 -4
- data/spec/fixtures/vcr/export_data_dates.yml +4 -4
- data/spec/fixtures/vcr/export_user.yml +5 -5
- data/spec/fixtures/vcr/get_ab_test.yml +4 -4
- data/spec/fixtures/vcr/get_ab_tests.yml +4 -4
- data/spec/fixtures/vcr/get_export_results.yml +4 -4
- data/spec/fixtures/vcr/get_messages.yml +6 -4
- data/spec/fixtures/vcr/get_vars.yml +45 -5
- data/spec/fixtures/vcr/missing_message.yml +4 -4
- data/spec/fixtures/vcr/reset_anomalous_user.yml +6 -7
- data/spec/fixtures/vcr/set_user_attributes.yml +5 -5
- data/spec/fixtures/vcr/track_events.yml +9 -9
- data/spec/fixtures/vcr/track_events_and_attributes.yml +11 -11
- data/spec/fixtures/vcr/track_events_anomaly_overrider.yml +16 -18
- data/spec/fixtures/vcr/track_offline_events.yml +11 -9
- metadata +16 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b8d4f6eb38f52bcc546f280eedf54ae413f6029
|
4
|
+
data.tar.gz: 023e78d43a6bd80fb69eb4a225a4fc59a14a72db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93b7f8cd1ce616bcbe16a0c5045363e8defad9a23c746333b91a7bac2bf30dfe1c09b023835e689d01aac07310b9d391eb540ba63853c03cc8b92bcc27b74b5c
|
7
|
+
data.tar.gz: 54648ce19ffa56ff6f4377100181e6347228d1def62dd0af22ec3e4734c27be1385dc0e14848571f527b149dbb691d86a6b0311fa3a71cb582959702edcc1d1c
|
data/README.md
CHANGED
@@ -20,17 +20,19 @@ You need to obtain (at a minimum) the `PRODUCTION_KEY` and `APP_ID` from Leanplu
|
|
20
20
|
require 'leanplum_api'
|
21
21
|
|
22
22
|
LeanplumApi.configure do |config|
|
23
|
+
# Required keys
|
23
24
|
config.app_id = 'MY_APP_ID'
|
24
25
|
config.production_key = 'MY_CLIENT_KEY'
|
25
|
-
|
26
|
-
|
27
|
-
config.
|
26
|
+
|
27
|
+
# Optional keys
|
28
|
+
config.data_export_key = 'MY_DATA_KEY' # Necessary only if you want to call data export methods.
|
29
|
+
config.content_read_only_key = 'MY_CONTENT_KEY' # Necessary for retrieving AB test info
|
30
|
+
config.development_key = 'MY_CONTENT_KEY' # Necessary for resetting anomalous events
|
28
31
|
|
29
32
|
# Optional configuration variables
|
30
|
-
config.logger = LeanplumApi::Logger.new('
|
31
|
-
config.timeout_seconds
|
32
|
-
config.api_version
|
33
|
-
config.developer_mode # Defaults to false
|
33
|
+
config.logger = LeanplumApi::Logger.new('my.log') # Defaults to STDOUT; the gem logger class hides passwords.
|
34
|
+
config.timeout_seconds # Defaults to 600
|
35
|
+
config.api_version # Defaults to 1.0.6
|
34
36
|
|
35
37
|
# S3 export required options
|
36
38
|
config.s3_bucket_name = 'my_bucket'
|
@@ -57,8 +59,8 @@ attribute_hash = {
|
|
57
59
|
first_name: 'Mike',
|
58
60
|
last_name: 'Jones',
|
59
61
|
gender: 'm',
|
60
|
-
|
61
|
-
|
62
|
+
email: 'still_tippin@test.com',
|
63
|
+
birthday: Date.today # Dates/times will be converted to ISO8601 format
|
62
64
|
}
|
63
65
|
api.set_user_attributes(attribute_hash)
|
64
66
|
|
data/lib/leanplum_api/api.rb
CHANGED
@@ -115,8 +115,16 @@ module LeanplumApi
|
|
115
115
|
get_export_results(job_id)
|
116
116
|
end
|
117
117
|
|
118
|
+
def user_attributes(user_id)
|
119
|
+
export_user(user_id)['userAttributes']
|
120
|
+
end
|
121
|
+
|
122
|
+
def user_events(user_id)
|
123
|
+
export_user(user_id)['events']
|
124
|
+
end
|
125
|
+
|
118
126
|
def export_user(user_id)
|
119
|
-
data_export_connection.get(action: 'exportUser', userId: user_id).body['response'].first
|
127
|
+
data_export_connection.get(action: 'exportUser', userId: user_id).body['response'].first
|
120
128
|
end
|
121
129
|
|
122
130
|
def get_ab_tests(only_recent = false)
|
@@ -41,6 +41,7 @@ module LeanplumApi::Connection
|
|
41
41
|
|
42
42
|
@connection ||= Faraday.new(options) do |connection|
|
43
43
|
connection.request :leanplum_response_validation
|
44
|
+
connection.request :json
|
44
45
|
|
45
46
|
connection.response :logger, @logger, bodies: true if api_debug?
|
46
47
|
connection.response :json, :content_type => /\bjson$/
|
data/lib/leanplum_api/version.rb
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -2,9 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe LeanplumApi::API do
|
4
4
|
let(:api) { LeanplumApi::API.new }
|
5
|
+
let(:first_user_id) { 123456 }
|
5
6
|
let(:users) do
|
6
7
|
[{
|
7
|
-
user_id:
|
8
|
+
user_id: first_user_id,
|
8
9
|
first_name: 'Mike',
|
9
10
|
last_name: 'Jones',
|
10
11
|
gender: 'm',
|
@@ -12,12 +13,11 @@ describe LeanplumApi::API do
|
|
12
13
|
create_date: '2010-01-01'.to_date
|
13
14
|
}]
|
14
15
|
end
|
15
|
-
let(:first_user_id) { users.first[:user_id] }
|
16
16
|
|
17
17
|
context 'users' do
|
18
18
|
it 'build_user_attributes_hash' do
|
19
19
|
expect(api.send(:build_user_attributes_hash, users.first)).to eq({
|
20
|
-
userId:
|
20
|
+
userId: first_user_id,
|
21
21
|
action: 'setUserAttributes',
|
22
22
|
userAttributes: HashWithIndifferentAccess.new(
|
23
23
|
first_name: 'Mike',
|
@@ -42,22 +42,19 @@ describe LeanplumApi::API do
|
|
42
42
|
let(:broken_users) { users + [{ first_name: 'Moe' }] }
|
43
43
|
|
44
44
|
it 'should raise an error' do
|
45
|
-
|
46
|
-
expect{ api.set_user_attributes(broken_users) }.to raise_error(/No device_id or user_id in hash/)
|
47
|
-
end
|
45
|
+
expect{ api.set_user_attributes(broken_users) }.to raise_error(/No device_id or user_id in hash/)
|
48
46
|
end
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
52
|
-
context '
|
50
|
+
context 'user_attributes' do
|
53
51
|
it 'should get user attributes for this user' do
|
54
52
|
VCR.use_cassette('export_user') do
|
55
|
-
|
56
|
-
user_info.keys.each do |k|
|
53
|
+
api.user_attributes(first_user_id).each do |k, v|
|
57
54
|
if users.first[k.to_sym].is_a?(Date) || users.first[k.to_sym].is_a?(DateTime)
|
58
|
-
expect(
|
55
|
+
expect(v).to eq(users.first[k.to_sym].strftime('%Y-%m-%d'))
|
59
56
|
else
|
60
|
-
expect(
|
57
|
+
expect(v).to eq(users.first[k.to_sym])
|
61
58
|
end
|
62
59
|
end
|
63
60
|
end
|
@@ -79,11 +76,12 @@ describe LeanplumApi::API do
|
|
79
76
|
|
80
77
|
context 'events' do
|
81
78
|
let(:timestamp) { '2015-05-01 01:02:03' }
|
79
|
+
let(:purchase) { 'purchase' }
|
82
80
|
let(:events) do
|
83
81
|
[
|
84
82
|
{
|
85
|
-
user_id:
|
86
|
-
event:
|
83
|
+
user_id: first_user_id,
|
84
|
+
event: purchase,
|
87
85
|
time: Time.now.utc,
|
88
86
|
some_timestamp: timestamp
|
89
87
|
},
|
@@ -98,10 +96,10 @@ describe LeanplumApi::API do
|
|
98
96
|
context '#build_event_attributes_hash' do
|
99
97
|
let(:event_hash) do
|
100
98
|
{
|
101
|
-
userId:
|
99
|
+
userId: first_user_id,
|
102
100
|
time: Time.now.utc.strftime('%s'),
|
103
101
|
action: 'track',
|
104
|
-
event:
|
102
|
+
event: purchase,
|
105
103
|
params: { some_timestamp: timestamp }
|
106
104
|
}
|
107
105
|
end
|
@@ -152,6 +150,14 @@ describe LeanplumApi::API do
|
|
152
150
|
end
|
153
151
|
end
|
154
152
|
end
|
153
|
+
|
154
|
+
context 'user_events' do
|
155
|
+
it 'should get user events for this user' do
|
156
|
+
VCR.use_cassette('export_user') do
|
157
|
+
expect(api.user_events(first_user_id)[purchase].keys).to eq(['count'])
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
155
161
|
end
|
156
162
|
|
157
163
|
# Data export and content read only endpoints forbid use of devMode
|
@@ -247,9 +253,10 @@ describe LeanplumApi::API do
|
|
247
253
|
end
|
248
254
|
|
249
255
|
it 'gets vars' do
|
256
|
+
pending 'Docs are extremely unclear about what getVars and setVars even do'
|
257
|
+
|
250
258
|
VCR.use_cassette('get_vars') do
|
251
|
-
|
252
|
-
expect(vars).to eq({ 'test_var' => 1 })
|
259
|
+
expect(api.get_vars(users.first[:user_id])).to eq({ 'test_var' => 1 })
|
253
260
|
end
|
254
261
|
end
|
255
262
|
end
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:52 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"error":{"message":"No matching data found."},"success":false}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:53 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"error":{"message":"No matching data found."},"success":false}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:49 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
|
-
string: '{"response":[{"events":{},"states":{},"success":true,"userAttributes":{"first_name":"Mike","create_date":"2010-01-01","email":"still_tippin@test.com","last_name":"Jones","gender":"m"}}]}'
|
37
|
+
string: '{"response":[{"created":1.43935302887E9,"events":{"purchase":{"count":11}},"lastActive":1.446709787966E9,"states":{},"success":true,"userAttributes":{"first_name":"Mike","create_date":"2010-01-01","email":"still_tippin@test.com","last_name":"Jones","gender":"m"}}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:54 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"abTests":[],"success":true}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:54 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"abTests":[],"success":true}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:53 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"files":["https:\/\/leanplum_export.storage.googleapis.com\/export-4727756026281984-d5969d55-f242-48a6-85a3-165af08e2306-output-0"],"jobId":"export_4727756026281984_2904941266315269120","numBytes":36590,"state":"FINISHED","success":true,"numSessions":101}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -22,14 +22,16 @@ http_interactions:
|
|
22
22
|
- "*"
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
|
+
X-Cloud-Trace-Context:
|
26
|
+
- 12a07ad33968771fe966d66789f04e87
|
25
27
|
Date:
|
26
|
-
-
|
28
|
+
- Fri, 01 Jul 2016 14:47:55 GMT
|
27
29
|
Server:
|
28
30
|
- Google Frontend
|
29
31
|
Cache-Control:
|
30
32
|
- private
|
31
33
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
34
|
+
- quic=":443"; ma=2592000; v="35,34,33,32,31,30,29,28,27,26,25"
|
33
35
|
Transfer-Encoding:
|
34
36
|
- chunked
|
35
37
|
body:
|
@@ -37,5 +39,5 @@ http_interactions:
|
|
37
39
|
string: '{"response":[{"success":true,"messages":[{"id":5670583287676928,"created":1.440091595799E9,"name":"New
|
38
40
|
Message","active":false,"messageType":"Push Notification"}]}]}'
|
39
41
|
http_version:
|
40
|
-
recorded_at: Wed, 12 Aug 2015
|
41
|
-
recorded_with: VCR
|
42
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
43
|
+
recorded_with: VCR 3.0.3
|
@@ -1,5 +1,45 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
+
- request:
|
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=1439352000
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}}]}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.2
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Content-Type:
|
26
|
+
- application/json
|
27
|
+
Date:
|
28
|
+
- Fri, 01 Jul 2016 14:59:29 GMT
|
29
|
+
Server:
|
30
|
+
- Google Frontend
|
31
|
+
Cache-Control:
|
32
|
+
- private
|
33
|
+
Alt-Svc:
|
34
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
35
|
+
Transfer-Encoding:
|
36
|
+
- chunked
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"response":[{"success":true,"warning":{"message":"Anomaly detected:
|
40
|
+
time skew. User will be excluded from analytics."}}]}'
|
41
|
+
http_version:
|
42
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
3
43
|
- request:
|
4
44
|
method: get
|
5
45
|
uri: https://www.leanplum.com/api?action=getVars&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_PRODUCTION_KEY>&devMode=false&userId=123456
|
@@ -23,18 +63,18 @@ http_interactions:
|
|
23
63
|
Content-Type:
|
24
64
|
- application/json
|
25
65
|
Date:
|
26
|
-
-
|
66
|
+
- Fri, 01 Jul 2016 14:59:30 GMT
|
27
67
|
Server:
|
28
68
|
- Google Frontend
|
29
69
|
Cache-Control:
|
30
70
|
- private
|
31
71
|
Alt-Svc:
|
32
|
-
- quic=":443";
|
72
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
73
|
Transfer-Encoding:
|
34
74
|
- chunked
|
35
75
|
body:
|
36
76
|
encoding: UTF-8
|
37
|
-
string: '{"response":[{"vars":{
|
77
|
+
string: '{"response":[{"vars":{},"interfaceRules":[],"variants":[],"eventRules":[],"regions":{},"success":true,"messages":{}}]}'
|
38
78
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
79
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
80
|
+
recorded_with: VCR 3.0.3
|
@@ -23,18 +23,18 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Fri, 01 Jul 2016 14:47:55 GMT
|
27
27
|
Server:
|
28
28
|
- Google Frontend
|
29
29
|
Cache-Control:
|
30
30
|
- private
|
31
31
|
Alt-Svc:
|
32
|
-
- quic=":443"; ma=
|
32
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
33
|
Transfer-Encoding:
|
34
34
|
- chunked
|
35
35
|
body:
|
36
36
|
encoding: UTF-8
|
37
37
|
string: '{"response":[{"error":{"message":"Message not found."},"success":false}]}'
|
38
38
|
http_version:
|
39
|
-
recorded_at: Wed, 12 Aug 2015
|
40
|
-
recorded_with: VCR
|
39
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|
@@ -2,7 +2,7 @@
|
|
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_DEVELOPMENT_KEY>&devMode=false&time=
|
5
|
+
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_DEVELOPMENT_KEY>&devMode=false&time=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"data":[{"action":"setUserAttributes","resetAnomalies":true,"userId":123456}]}'
|
@@ -25,19 +25,18 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Fri, 01 Jul 2016 14:47:50 GMT
|
29
29
|
Server:
|
30
30
|
- Google Frontend
|
31
31
|
Cache-Control:
|
32
32
|
- private
|
33
33
|
Alt-Svc:
|
34
|
-
- quic=":443";
|
34
|
+
- quic=":443"; ma=2592000; v="35,34,33,32,31,30,29,28,27,26,25"
|
35
35
|
Transfer-Encoding:
|
36
36
|
- chunked
|
37
37
|
body:
|
38
38
|
encoding: UTF-8
|
39
|
-
string: '{"response":[{"success":true
|
40
|
-
time skew. User will be excluded from analytics."}}]}'
|
39
|
+
string: '{"response":[{"success":true}]}'
|
41
40
|
http_version:
|
42
|
-
recorded_at: Wed, 12 Aug 2015
|
43
|
-
recorded_with: VCR
|
41
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
42
|
+
recorded_with: VCR 3.0.3
|
@@ -2,7 +2,7 @@
|
|
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=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}}]}'
|
@@ -25,13 +25,13 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Fri, 01 Jul 2016 14:47:49 GMT
|
29
29
|
Server:
|
30
30
|
- Google Frontend
|
31
31
|
Cache-Control:
|
32
32
|
- private
|
33
33
|
Alt-Svc:
|
34
|
-
- quic=":443";
|
34
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
35
35
|
Transfer-Encoding:
|
36
36
|
- chunked
|
37
37
|
body:
|
@@ -39,5 +39,5 @@ http_interactions:
|
|
39
39
|
string: '{"response":[{"success":true,"warning":{"message":"Anomaly detected:
|
40
40
|
time skew. User will be excluded from analytics."}}]}'
|
41
41
|
http_version:
|
42
|
-
recorded_at: Wed, 12 Aug 2015
|
43
|
-
recorded_with: VCR
|
42
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
43
|
+
recorded_with: VCR 3.0.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=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"action":"track","event":"purchase","userId":
|
9
|
-
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"
|
8
|
+
string: '{"data":[{"action":"track","event":"purchase","userId":123456,"time":"1439352000","params":{"some_timestamp":"2015-05-01
|
9
|
+
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"1439351400"}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
12
|
- Faraday v0.9.2
|
@@ -26,20 +26,20 @@ http_interactions:
|
|
26
26
|
Content-Type:
|
27
27
|
- application/json
|
28
28
|
Date:
|
29
|
-
-
|
29
|
+
- Fri, 01 Jul 2016 14:47:50 GMT
|
30
30
|
Server:
|
31
31
|
- Google Frontend
|
32
32
|
Cache-Control:
|
33
33
|
- private
|
34
34
|
Alt-Svc:
|
35
|
-
- quic=":443";
|
35
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
36
36
|
Transfer-Encoding:
|
37
37
|
- chunked
|
38
38
|
body:
|
39
39
|
encoding: UTF-8
|
40
40
|
string: '{"response":[{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
41
|
-
detected: time skew. User will be excluded from analytics."}},{"success":true,"warning":{"message":"Anomaly
|
41
|
+
detected: time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
42
42
|
detected: time skew. User will be excluded from analytics."}}]}'
|
43
|
-
http_version:
|
44
|
-
recorded_at: Wed, 12 Aug 2015
|
45
|
-
recorded_with: VCR
|
43
|
+
http_version:
|
44
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
45
|
+
recorded_with: VCR 3.0.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=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}},{"action":"track","event":"purchase","userId":
|
9
|
-
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"
|
8
|
+
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}},{"action":"track","event":"purchase","userId":123456,"time":"1439352000","params":{"some_timestamp":"2015-05-01
|
9
|
+
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"1439351400"}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
12
|
- Faraday v0.9.2
|
@@ -26,21 +26,21 @@ http_interactions:
|
|
26
26
|
Content-Type:
|
27
27
|
- application/json
|
28
28
|
Date:
|
29
|
-
-
|
29
|
+
- Fri, 01 Jul 2016 14:47:51 GMT
|
30
30
|
Server:
|
31
31
|
- Google Frontend
|
32
32
|
Cache-Control:
|
33
33
|
- private
|
34
34
|
Alt-Svc:
|
35
|
-
- quic=":443";
|
35
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
36
36
|
Transfer-Encoding:
|
37
37
|
- chunked
|
38
38
|
body:
|
39
39
|
encoding: UTF-8
|
40
|
-
string: '{"response":[{"
|
41
|
-
|
42
|
-
detected: time skew. User will be excluded from analytics."}},{"success":true,"warning":{"message":"Anomaly
|
40
|
+
string: '{"response":[{"success":true,"warning":{"message":"Anomaly detected:
|
41
|
+
time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
42
|
+
detected: time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
43
43
|
detected: time skew. User will be excluded from analytics."}}]}'
|
44
|
-
http_version:
|
45
|
-
recorded_at: Wed, 12 Aug 2015
|
46
|
-
recorded_with: VCR
|
44
|
+
http_version:
|
45
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
46
|
+
recorded_with: VCR 3.0.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=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"action":"track","event":"purchase","userId":
|
9
|
-
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"
|
8
|
+
string: '{"data":[{"action":"track","event":"purchase","userId":123456,"time":"1439352000","params":{"some_timestamp":"2015-05-01
|
9
|
+
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"1439351400"}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
12
|
- Faraday v0.9.2
|
@@ -26,28 +26,28 @@ http_interactions:
|
|
26
26
|
Content-Type:
|
27
27
|
- application/json
|
28
28
|
Date:
|
29
|
-
-
|
29
|
+
- Fri, 01 Jul 2016 14:47:51 GMT
|
30
30
|
Server:
|
31
31
|
- Google Frontend
|
32
32
|
Cache-Control:
|
33
33
|
- private
|
34
34
|
Alt-Svc:
|
35
|
-
- quic=":443";
|
35
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
36
36
|
Transfer-Encoding:
|
37
37
|
- chunked
|
38
38
|
body:
|
39
39
|
encoding: UTF-8
|
40
40
|
string: '{"response":[{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
41
|
-
detected: time skew. User will be excluded from analytics."}},{"success":true,"warning":{"message":"Anomaly
|
41
|
+
detected: time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
42
42
|
detected: time skew. User will be excluded from analytics."}}]}'
|
43
|
-
http_version:
|
44
|
-
recorded_at: Wed, 12 Aug 2015
|
43
|
+
http_version:
|
44
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
45
45
|
- request:
|
46
46
|
method: post
|
47
|
-
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_DEVELOPMENT_KEY>&devMode=false&time=
|
47
|
+
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_DEVELOPMENT_KEY>&devMode=false&time=1439352000
|
48
48
|
body:
|
49
49
|
encoding: UTF-8
|
50
|
-
string: '{"data":[{"action":"setUserAttributes","resetAnomalies":true,"userId":
|
50
|
+
string: '{"data":[{"action":"setUserAttributes","resetAnomalies":true,"userId":123456},{"action":"setUserAttributes","resetAnomalies":true,"userId":54321}]}'
|
51
51
|
headers:
|
52
52
|
User-Agent:
|
53
53
|
- Faraday v0.9.2
|
@@ -67,20 +67,18 @@ http_interactions:
|
|
67
67
|
Content-Type:
|
68
68
|
- application/json
|
69
69
|
Date:
|
70
|
-
-
|
70
|
+
- Fri, 01 Jul 2016 14:47:51 GMT
|
71
71
|
Server:
|
72
72
|
- Google Frontend
|
73
73
|
Cache-Control:
|
74
74
|
- private
|
75
75
|
Alt-Svc:
|
76
|
-
- quic=":443";
|
76
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
77
77
|
Transfer-Encoding:
|
78
78
|
- chunked
|
79
79
|
body:
|
80
80
|
encoding: UTF-8
|
81
|
-
string: '{"response":[{"success":true,
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
recorded_at: Wed, 12 Aug 2015 00:00:00 GMT
|
86
|
-
recorded_with: VCR 2.9.3
|
81
|
+
string: '{"response":[{"success":true},{"success":true}]}'
|
82
|
+
http_version:
|
83
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
84
|
+
recorded_with: VCR 3.0.3
|
@@ -2,14 +2,16 @@
|
|
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=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"action":"track","event":"purchase","userId":
|
9
|
-
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"
|
8
|
+
string: '{"data":[{"action":"track","event":"purchase","userId":123456,"time":"1439352000","allowOffline":true,"params":{"some_timestamp":"2015-05-01
|
9
|
+
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"1439351400","allowOffline":true}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
12
|
- Faraday v0.9.2
|
13
|
+
Content-Type:
|
14
|
+
- application/json
|
13
15
|
Accept-Encoding:
|
14
16
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
15
17
|
Accept:
|
@@ -24,20 +26,20 @@ http_interactions:
|
|
24
26
|
Content-Type:
|
25
27
|
- application/json
|
26
28
|
Date:
|
27
|
-
-
|
29
|
+
- Fri, 01 Jul 2016 14:47:50 GMT
|
28
30
|
Server:
|
29
31
|
- Google Frontend
|
30
32
|
Cache-Control:
|
31
33
|
- private
|
32
34
|
Alt-Svc:
|
33
|
-
- quic=":443"; ma=
|
35
|
+
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
34
36
|
Transfer-Encoding:
|
35
37
|
- chunked
|
36
38
|
body:
|
37
39
|
encoding: UTF-8
|
38
|
-
string: '{"response":[{"success":true,"warning":{"message":"Anomaly
|
39
|
-
time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
40
|
+
string: '{"response":[{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
41
|
+
detected: time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
40
42
|
detected: time skew. User will be excluded from analytics."}}]}'
|
41
43
|
http_version:
|
42
|
-
recorded_at: Wed, 12 Aug 2015
|
43
|
-
recorded_with: VCR
|
44
|
+
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
45
|
+
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leanplum_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lumos Labs, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">"
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '3.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: awesome_print
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,30 +124,30 @@ dependencies:
|
|
118
124
|
name: vcr
|
119
125
|
requirement: !ruby/object:Gem::Requirement
|
120
126
|
requirements:
|
121
|
-
- - "
|
127
|
+
- - ">"
|
122
128
|
- !ruby/object:Gem::Version
|
123
129
|
version: '2'
|
124
130
|
type: :development
|
125
131
|
prerelease: false
|
126
132
|
version_requirements: !ruby/object:Gem::Requirement
|
127
133
|
requirements:
|
128
|
-
- - "
|
134
|
+
- - ">"
|
129
135
|
- !ruby/object:Gem::Version
|
130
136
|
version: '2'
|
131
137
|
- !ruby/object:Gem::Dependency
|
132
138
|
name: webmock
|
133
139
|
requirement: !ruby/object:Gem::Requirement
|
134
140
|
requirements:
|
135
|
-
- - "
|
141
|
+
- - ">"
|
136
142
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
143
|
+
version: '2'
|
138
144
|
type: :development
|
139
145
|
prerelease: false
|
140
146
|
version_requirements: !ruby/object:Gem::Requirement
|
141
147
|
requirements:
|
142
|
-
- - "
|
148
|
+
- - ">"
|
143
149
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
150
|
+
version: '2'
|
145
151
|
description: Ruby-esque access to Leanplum API
|
146
152
|
email:
|
147
153
|
- analytics-dev@lumoslabs.com
|