playlyfe_client 1.1.1 → 1.1.2

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: f60f5a03a4b845f9fa638d24b10d74fde2e4b3e2
4
- data.tar.gz: 9704cd30d13338af3b5627a91536968e94c4ca7b
3
+ metadata.gz: 27a6645e14ef7e0623cb4d51483aa4ad7200e365
4
+ data.tar.gz: c606bd525855f1d96e91bc466a07eb58d4b571fb
5
5
  SHA512:
6
- metadata.gz: 46decdb377e1314c6b3f3142bc239fc5c79d8ca9cf8df771a5a578efa58abdfee4d97abca2cdfe66ecd592fc61a4202910b00b77f76d9c13fd7ee81e2ccf1e77
7
- data.tar.gz: 7004a254a84bb638da2ecc8edda3ff07562d363e035b143d95da01c3ad4bdfc8aca22809810a5362b19f805e8dd1933d6b28833808856402cc259cb8e42fba06
6
+ metadata.gz: b770fa236cd02b1058338588f87bbbdc9eae67fa050124cc3fe9e542f8ee3e4e7d1ae06771cbf44bae09c3394cca6064bd049d3c719ebf73a3d9b08276a7d61a
7
+ data.tar.gz: 6b0878013d909a7f53fa3423b67e968f1a317c41bee1460a0f8da26ca0e6f6825c5da482c7c0ae5450223e99d8d67245f4cf7d93e95f7559d11fb48042c591d3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- playlyfe_client (1.1.1)
4
+ playlyfe_client (1.1.2)
5
5
  json
6
6
  jwt
7
7
  rest-client
@@ -34,6 +34,7 @@ module PlaylyfeClient
34
34
  @store = options[:store]
35
35
  @load = options[:load]
36
36
  @redirect_uri = options[:redirect_uri]
37
+ @skip_api_calls_limit_exceeded_error=options[:skip_api_calls_limit_exceeded_error] || false
37
38
  if @store.nil?
38
39
  @store = lambda { |token| puts 'Storing Token' }
39
40
  end
@@ -12,6 +12,7 @@ module PlaylyfeClient
12
12
  class PlaylyfeClient::ActionRateLimitExceededError < PlaylyfeClient::ActionError; end
13
13
  class PlaylyfeClient::PlayerExistsError < PlaylyfeClient::PlayerError; end
14
14
  class PlaylyfeClient::CollectionFindOneIsNotSupportedError < PlaylyfeClient::Error; end
15
+ class PlaylyfeClient::ApiCallsLimitExceededError < PlaylyfeClient::Error; end
15
16
 
16
17
  class Error < StandardError
17
18
  attr_accessor :name, :message
@@ -33,6 +34,8 @@ module PlaylyfeClient
33
34
  err_class= PlaylyfeClient::ActionRateLimitExceededError
34
35
  elsif res_h['error'] == "player_exists"
35
36
  err_class= PlaylyfeClient::PlayerExistsError
37
+ elsif res_h['error'] == "plan_limit_exceeded"
38
+ err_class= PlaylyfeClient::ApiCallsLimitExceededError
36
39
 
37
40
  end
38
41
  end
@@ -12,9 +12,25 @@ module PlaylyfeClient
12
12
  @game=nil
13
13
  end
14
14
 
15
+ def skip_errors_with(skipping_result, &block)
16
+ begin
17
+ yield
18
+ rescue PlaylyfeClient::ApiCallsLimitExceededError => e
19
+ if @skip_api_calls_limit_exceeded_error
20
+ skipping_result
21
+ else
22
+ raise e
23
+ end
24
+ end
25
+ end
26
+
15
27
  #for calls to "runtime" there MUST be a player_id, even for Metrics or Leaderboards. So we pick first one.
16
28
  def dummy_player_id
17
- @dummy_player_id||= get_full_players_hash["data"].first["id"]
29
+ unless defined?(@dummy_player_id)
30
+ fph= get_full_players_hash["data"]
31
+ @dummy_player_id=fph.empty? ? 0 : fph.first["id"]
32
+ end
33
+ @dummy_player_id
18
34
  end
19
35
 
20
36
  def dummy_player_id=(id)
@@ -22,7 +38,7 @@ module PlaylyfeClient
22
38
  end
23
39
 
24
40
  def get_full_game_hash
25
- self.get('/admin')
41
+ skip_errors_with({"name" => "unknown", "game" => {"id" => 0 ,"title" => "no response"}}) { self.get('/admin') }
26
42
  end
27
43
 
28
44
  def get_game_hash
@@ -30,7 +46,7 @@ module PlaylyfeClient
30
46
  end
31
47
 
32
48
  def get_full_players_hash
33
- get("/admin/players")
49
+ skip_errors_with({"data" => [], "total" => 0}) { get("/admin/players") }
34
50
  end
35
51
 
36
52
  def get_player_hash_array
@@ -38,11 +54,11 @@ module PlaylyfeClient
38
54
  end
39
55
 
40
56
  def get_game_image_data(player_id=dummy_player_id)
41
- get_raw("/runtime/assets/game", {size: style.to_s, player_id: player_id})
57
+ skip_errors_with(nil) { get_raw("/runtime/assets/game", {size: style.to_s, player_id: player_id}) }
42
58
  end
43
59
 
44
60
  def get_full_teams_hash
45
- get("/admin/teams")
61
+ skip_errors_with({"data" => [], "total" => 0}) { get("/admin/teams") }
46
62
  end
47
63
 
48
64
  def get_team_hash_array
@@ -50,11 +66,11 @@ module PlaylyfeClient
50
66
  end
51
67
 
52
68
  def get_full_player_profile_hash(player_id)
53
- get("/admin/players/#{player_id}")
69
+ skip_errors_with({"id" => "0", "alias" => "no response", "scores" => [], "teams" => []}) { get("/admin/players/#{player_id}") }
54
70
  end
55
71
 
56
72
  def get_full_team_members_hash(team_id)
57
- get("/admin/teams/#{team_id}/members")
73
+ skip_errors_with({"data" => [], "total" => 0}) { get("/admin/teams/#{team_id}/members") }
58
74
  end
59
75
 
60
76
  def get_team_members_hash_array(team_id)
@@ -62,62 +78,68 @@ module PlaylyfeClient
62
78
  end
63
79
 
64
80
  def get_full_leaderboards_array(player_id=dummy_player_id)
65
- get("/runtime/leaderboards", {player_id: player_id})
81
+ skip_errors_with([]) { get("/runtime/leaderboards", {player_id: player_id}) }
66
82
  end
67
83
 
68
84
  def get_full_leaderboard_hash(leaderboard_id, cycle="alltime", player_id=dummy_player_id)
69
- get("/runtime/leaderboards/#{leaderboard_id}", {cycle: cycle, player_id: player_id})
85
+ skip_errors_with({"data" => [], "total" => 0}) { get("/runtime/leaderboards/#{leaderboard_id}", {cycle: cycle, player_id: player_id}) }
70
86
  end
71
87
 
72
88
  def get_full_all_actions_array(player_id=dummy_player_id)
73
- get("/runtime/actions", {player_id: player_id})
89
+ skip_errors_with([]) { get("/runtime/actions", {player_id: player_id}) }
74
90
  end
75
91
 
76
92
  def post_play_action(action_id, player_id, body ={})
77
- post("/runtime/actions/#{action_id}/play", {player_id: player_id}, body)
93
+ skip_errors_with({"actions" => [], "events" => []}) { post("/runtime/actions/#{action_id}/play", {player_id: player_id}, body) }
78
94
  end
79
95
 
80
96
  def get_full_metrics_array(player_id=dummy_player_id)
81
- get("/runtime/definitions/metrics", {player_id: player_id})
97
+ skip_errors_with([]) { get("/runtime/definitions/metrics", {player_id: player_id}) }
82
98
  end
83
99
 
84
100
  def get_player_events_array(player_id, start_time=nil, end_time=nil)
85
101
  #/admin/players/player2/activity?start=2016-05-01T00:00:00Z&end=2016-05-21T00:00:00Z
86
- if start_time
87
- #get specified period of time
88
- get("/admin/players/#{player_id}/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
89
- else
90
- #get last 24 hours
91
- get("/admin/players/#{player_id}/activity")
92
- end
102
+ skip_errors_with([]) do
103
+ if start_time
104
+ #get specified period of time
105
+ get("/admin/players/#{player_id}/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
106
+ else
107
+ #get last 24 hours
108
+ get("/admin/players/#{player_id}/activity")
109
+ end
110
+ end
93
111
  end
94
112
 
95
113
  def post_create_player(player_h)
96
- post("/admin/players", {}, player_h)
114
+ skip_errors_with({"id" => "0", "alias" => "no response", "scores" => [], "teams" => []}) { post("/admin/players", {}, player_h) }
97
115
  end
98
116
 
99
117
  def delete_player(player_id)
100
- delete("/admin/players/#{player_id}")
118
+ skip_errors_with(nil) { delete("/admin/players/#{player_id}") }
101
119
  end
102
120
 
103
121
  def get_game_events_array(start_time=nil, end_time=nil)
104
- if start_time
105
- #get specified period of time
106
- get("/admin/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
107
- else
108
- #get last 24 hours
109
- get("/admin/activity")
110
- end
122
+ skip_errors_with([]) do
123
+ if start_time
124
+ #get specified period of time
125
+ get("/admin/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
126
+ else
127
+ #get last 24 hours
128
+ get("/admin/activity")
129
+ end
130
+ end
111
131
  end
112
132
 
113
133
  def get_team_events_array(team_id, start_time=nil, end_time=nil)
114
- if start_time
115
- #get specified period of time
116
- get("/admin/teams/#{team_id}/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
117
- else
118
- #get last 24 hours
119
- get("/admin/teams/#{team_id}/activity")
120
- end
134
+ skip_errors_with([]) do
135
+ if start_time
136
+ #get specified period of time
137
+ get("/admin/teams/#{team_id}/activity",{"start" => start_str(start_time), "end" => end_str(end_time)})
138
+ else
139
+ #get last 24 hours
140
+ get("/admin/teams/#{team_id}/activity")
141
+ end
142
+ end
121
143
  end
122
144
 
123
145
  private
@@ -71,7 +71,7 @@ module PlaylyfeClient
71
71
  @title=game_hash["title"]
72
72
  @type=game_hash["type"]
73
73
  @timezone=game_hash["timezone"] #TODO converion to TZInfo::Timezone ? http://www.rubydoc.info/gems/tzinfo/frames
74
- @created_at=Time.parse(game_hash["created"])
74
+ @created_at=game_hash["created"] ? Time.parse(game_hash["created"]) : nil
75
75
  end
76
76
 
77
77
 
@@ -29,7 +29,7 @@ module PlaylyfeClient
29
29
  game.connection.post_play_action(action.id, self.id)
30
30
  @profile_hash= game.connection.get_full_player_profile_hash(self.id)
31
31
  @scores=fill_scores
32
- rescue PlaylyfeClient::ActionRateLimitExceededError => e
32
+ rescue PlaylyfeClient::ActionRateLimitExceededError => e
33
33
  unless game.ignore_rate_limit_errors
34
34
  fail e
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module PlaylyfeClient
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playlyfe_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-28 00:00:00.000000000 Z
11
+ date: 2016-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json