playlyfe_client 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
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