kahuna_client 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: 02ba50b752e79c78313e3fbc2ba85cf86adf9fa6
4
- data.tar.gz: 8b19d5d48c4975f331fb8e8af11cfefc92bb362e
3
+ metadata.gz: 852f844be1e7f03829000aac9fd1f81ca72a5ee7
4
+ data.tar.gz: 17f5b26cda633d94e4c6e686131b21391b3df747
5
5
  SHA512:
6
- metadata.gz: c7683e925be1be1215c39624eb7eb3bb30dcadfb5d2b235509d851722ba6fa11a8ec651e004676ea0e2c28e4403c50d4d99079c2970e5653cb6d9b435dd865c2
7
- data.tar.gz: a96fac84c0929287584db6243982999e64509979a0359f3d4c5be043cae5e50f3c39fffc965d4fe248cce6a33ac2de87d39a72162105aeeebee6f7b8f7bc1ed7
6
+ metadata.gz: bb2568e9d342aee5e120dcbdb5ce937fce9ff458169ac25310da5dda0d843a749c71da79e7a3c1a2340c5910b32ccb857f48856b7ffcb7759b579089a63c0f37
7
+ data.tar.gz: dbb94ece76075cc71a66f30406398a85a0391495189b6b4ab6715fa78e41053c1fc997708f25fc1c2fa18b4446730a738bb8dfb8974e860c4d71eb451d13f5e7
@@ -4,5 +4,6 @@ module KahunaClient
4
4
  Dir[File.expand_path('../client/*.rb', __FILE__)].each{|f| require f}
5
5
 
6
6
  include KahunaClient::Client::Push
7
+ include KahunaClient::Client::Logs
7
8
  end
8
9
  end
@@ -0,0 +1,38 @@
1
+ module KahunaClient
2
+ class Client
3
+ module Logs
4
+
5
+ # Fetch push logs
6
+ #
7
+ # Params:
8
+ # timestamp: Timestamp from which to fetch logs
9
+ # cursor: Cursor string from previous response
10
+ # number_of_records: (Optional) Number of entries in log. Max 1000
11
+ #
12
+ def logs(options = {})
13
+ timestamp = options[:timestamp] || Time.now.utc
14
+ time_formatted = timestamp.strftime('%m/%d/%y %H:%M:%S %p')
15
+ cursor = options[:cursor]
16
+ number_of_records = options[:number_of_records] || 1000
17
+ params = {
18
+ :categories_to_return => [:push],
19
+ :number_of_records => number_of_records
20
+ }
21
+ # Cursor gets priority
22
+ if cursor
23
+ params.merge!({:cursor => cursor})
24
+ else
25
+ params.merge!({:timestamp => time_formatted})
26
+ end
27
+ # Do the post
28
+ post(logs_path, params)
29
+ end
30
+
31
+ protected
32
+
33
+ def logs_path
34
+ "api/kahunalogs"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,3 +1,3 @@
1
1
  module KahunaClient
2
- VERSION = "0.0.3".freeze unless defined?(::KahunaClient::VERSION)
2
+ VERSION = "0.0.4".freeze unless defined?(::KahunaClient::VERSION)
3
3
  end
@@ -0,0 +1 @@
1
+ {"push": [{"ghost": true, "dev_id": "493bccb7-67e8-4745-91d9-8ca63847e19e", "user_id": 380810003, "campaign": "Saved Listing", "timestamp": "2015-03-27 08:00:47.911780", "campaign_id": 408490141, "action_category": "duplicate_ghost_push", "action": "duplicate_ghost_push", "action_detail": "Duplicate ghost push will not be sent to user 'goooyoon@gmail.com', device '493bccb7-67e8-4745-91d9-8ca63847e19e'", "push_token": "APA91bF2dCatGpeh74yrhHmD2yKOzHvrLD8zEdqZw6UPr-cOPw00AoaXQCP8W9KKmDy9rZj4zlQyicJZY5E42_9S6xkXwE_-XF_FIoGBHnopNi5eT5D6cnDBsyfmsFAqeqhiALXrELclnIbKIc5KBpy6u2Ac0w9m1vES0dJE0TyUFnnoPpMMoDU", "credentials": ["email:goooyoon@gmail.com", "username:goooyoon@gmail.com"], "message": "0", "os": "android"}, {"ghost": true, "dev_id": "7e4f55e8-43f7-4a0a-a953-b5955a3e61ab", "user_id": 378290075, "campaign": "Clear Badge", "timestamp": "2015-03-27 08:00:51.730470", "campaign_id": 396230100, "action_category": "original_push_blocked", "action": "original_push_blocked", "action_detail": "Ghost push will not be sent to user 'tarek.h.soubra@gmail.com' because the original push was not sent", "push_token": "APA91bEPvrad_TPcBJlle4f_z_CcVKk9e3OGvE7VKPKtzQZtQLROHUeAlbXd9SXG8KITc9Qx7VJ2tFoVt0lk2Y8CfSkB_IBf86MGNBVvdvK5fe2C6ACvc7phHUPELe9gUjXZ60ZH2ABWBgbCtp_c_cHrLTPS6mUPeyN7ThrHojHINgilh1qM6s4", "credentials": ["email:tarek.h.soubra@gmail.com", "username:tarek.h.soubra@gmail.com"], "message": "0", "os": "android"}, {"dev_id": "5ad2a333-e273-438e-aa5e-9432551aaa1d", "user_id": 390780004, "timestamp": "2015-03-27 08:00:57.242320", "action": "more engaged", "push_token": "APA91bEdl_hgZKTkzN0r0hIp_X_ChOmUZnro4LVkdpUqAcZBLpiWdQnN7XgjIp-XsBbzcAgsuji_Ogz3VisgtWYJOLxdS3WkxqkBGlQIf0P5pWypOkkVEWl4dVf3lPmV6MKme3NzGrdifx5pUlj9AJ41DNT7HK5g-nsywSqyV1RNrY2xVKuSMJk", "credentials": ["email:abarbot0216@gmail.com", "username:abarbot0216@gmail.com"], "os": "android"}, {"ghost": true, "dev_id": "f55096bd-4ca3-49d2-a4cb-c6b24f927325", "user_id": 46840001, "campaign": "Clear Badge", "timestamp": "2015-03-27 08:01:40.074000", "campaign_id": 396230100, "action_category": "original_push_blocked", "action": "original_push_blocked", "action_detail": "Ghost push will not be sent to user 'hondafsc600@gmail.com' because the original push was not sent", "push_token": "APA91bHPUrg9liC1Kpvm_Djkpr_HQofXTMSoXqen3MPfFsbGnWiZi705hi-7MeBq2oQjwHKv0toEoBGUrSXaIUK1L9Ms6xKj1TroyX4YnlReDDVXb30wOaTZ66NhQzZ1eaIZ5LbcZnf7PtIa56zBexisSf0myWDMohHmVoTRQn8pHhBXhDAO9jE", "credentials": ["username:hondafsc600@gmail.com", "email:hondafsc600@gmail.com"], "message": "0", "os": "android"}, {"ghost": true, "dev_id": "e9fa9770-cb05-4b0f-a0e7-085eb8cc85ac", "user_id": 46840001, "campaign": "Clear Badge", "timestamp": "2015-03-27 08:01:40.292750", "campaign_id": 396230100, "action_category": "original_push_blocked", "action": "original_push_blocked", "action_detail": "Ghost push will not be sent to user 'hondafsc600@gmail.com' because the original push was not sent", "push_token": "APA91bERaWMMhX44Fs5T6pyfdh3sk0Ixurm1WApL3fPjfhAYo12_uIAH5lSF6n_jskOKL4M9RjQu7JJR9OfXqLC0IzDIktrQXlKnKQ3XsyfFST3UhuS66fhoI3jUGN_ZJOVO4HYtGG7AODcCkGn3QhatcvyAEx-rWG5K8DItcL4vMsvh_0QA_80", "credentials": ["username:hondafsc600@gmail.com", "email:hondafsc600@gmail.com"], "message": "0", "os": "android"}], "more_records": true, "cursor": "_NJXWEX2SIZTHAUL2PJ4XSVCUN5YVQ4CMMR3FC4RXLJGHKQ2DHA______-_IJDUEWCLJVBTKSSRIFIUCQKBKNAVKSKJIJAUKQKBKVHECSKDIFDEGQKDKNBE2RSPINKT2PJ5HU6T2___"}
@@ -0,0 +1,74 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe KahunaClient::Client do
4
+
5
+ before do
6
+ @client = KahunaClient::Client.new(app_id: 'ID', app_key: 'KEY', environment: 'p')
7
+ end
8
+
9
+ describe ".logs with timestamp" do
10
+
11
+ let!(:timestamp) { Time.now }
12
+
13
+ let(:payload) {
14
+ {
15
+ categories_to_return: ['push'],
16
+ number_of_records: 5,
17
+ timestamp: timestamp.strftime('%m/%d/%y %H:%M:%S %p')
18
+ }
19
+ }
20
+
21
+ before do
22
+ # note here the env param
23
+ stub_post("api/kahunalogs?env=p").
24
+ with(body: payload).
25
+ to_return(body: fixture("logs.json"))
26
+ end
27
+
28
+ it "should get the correct resource" do
29
+ @client.logs({timestamp:timestamp, number_of_records:5})
30
+ expect(a_post("api/kahunalogs?env=p").with(body: payload)).to have_been_made
31
+ end
32
+
33
+ it "should parse the response in a proper way" do
34
+ logs = @client.logs({timestamp:timestamp, number_of_records:5})
35
+
36
+ # should have the proper fields
37
+ [:cursor, :more_records, :push].each do |key|
38
+ expect(logs.has_key?(key)).to be_true
39
+ end
40
+
41
+ # push array should have the proper size
42
+ expect(logs.push).to have(5).items
43
+ end
44
+ end
45
+
46
+ describe ".logs with cursor" do
47
+
48
+ let!(:cursor) { 'TestCursor' }
49
+
50
+ let(:payload) {
51
+ {
52
+ categories_to_return: ['push'],
53
+ number_of_records: 5,
54
+ cursor: cursor
55
+ }
56
+ }
57
+
58
+ before do
59
+ # note here the env param
60
+ stub_post("api/kahunalogs?env=p").
61
+ with(body: payload).
62
+ to_return(body: fixture("logs.json"))
63
+ end
64
+
65
+ it "should get the correct resource" do
66
+ @client.logs({cursor:cursor, number_of_records:5})
67
+ expect(a_post("api/kahunalogs?env=p").with(body: payload)).to have_been_made
68
+ end
69
+ end
70
+
71
+
72
+
73
+
74
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kahuna_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar Gonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-29 00:00:00.000000000 Z
11
+ date: 2015-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -154,6 +154,7 @@ files:
154
154
  - lib/kahuna_client.rb
155
155
  - lib/kahuna_client/api.rb
156
156
  - lib/kahuna_client/client.rb
157
+ - lib/kahuna_client/client/logs.rb
157
158
  - lib/kahuna_client/client/push.rb
158
159
  - lib/kahuna_client/configuration.rb
159
160
  - lib/kahuna_client/connection.rb
@@ -162,10 +163,12 @@ files:
162
163
  - lib/kahuna_client/version.rb
163
164
  - spec/faraday/response_spec.rb
164
165
  - spec/fixtures/authentication_failed.json
166
+ - spec/fixtures/logs.json
165
167
  - spec/fixtures/success.json
166
168
  - spec/fixtures/user_not_enabled_for_push.json
167
169
  - spec/fixtures/user_not_found.json
168
170
  - spec/kahuna_client/api_spec.rb
171
+ - spec/kahuna_client/client/logs_spec.rb
169
172
  - spec/kahuna_client/client/push_spec.rb
170
173
  - spec/kahuna_client/client_spec.rb
171
174
  - spec/kahuna_client_spec.rb
@@ -197,10 +200,12 @@ summary: A ruby wrapper for Kahuna Push API
197
200
  test_files:
198
201
  - spec/faraday/response_spec.rb
199
202
  - spec/fixtures/authentication_failed.json
203
+ - spec/fixtures/logs.json
200
204
  - spec/fixtures/success.json
201
205
  - spec/fixtures/user_not_enabled_for_push.json
202
206
  - spec/fixtures/user_not_found.json
203
207
  - spec/kahuna_client/api_spec.rb
208
+ - spec/kahuna_client/client/logs_spec.rb
204
209
  - spec/kahuna_client/client/push_spec.rb
205
210
  - spec/kahuna_client/client_spec.rb
206
211
  - spec/kahuna_client_spec.rb