playlyfe 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +8 -0
- data/lib/playlyfe.rb +79 -0
- data/test/test.rb +30 -0
- metadata +27 -7
- data/lib/main.rb +0 -5
data/Rakefile
ADDED
data/lib/playlyfe.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'oauth2'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Playlyfe
|
5
|
+
@@client = nil
|
6
|
+
@@token = nil
|
7
|
+
@@api = 'http://api.playlyfe.com/v1'
|
8
|
+
@@player = ""
|
9
|
+
@@debug = true
|
10
|
+
|
11
|
+
def self.token
|
12
|
+
@@token
|
13
|
+
end
|
14
|
+
|
15
|
+
# You can initiate a client by giving the client_id and client_secret params
|
16
|
+
# This will authorize a client and get the token
|
17
|
+
def self.start(options = {})
|
18
|
+
puts 'Getting Token'
|
19
|
+
begin
|
20
|
+
@@client = OAuth2::Client.new(
|
21
|
+
options[:client_id],
|
22
|
+
options[:client_secret],
|
23
|
+
:authorize_url => "/auth",
|
24
|
+
:token_url => "/auth/token",
|
25
|
+
:site => "http://playlyfe.com"
|
26
|
+
)
|
27
|
+
rescue OAuth2::Error => e
|
28
|
+
puts 'OAuth2 Error---------------------------------------'
|
29
|
+
puts
|
30
|
+
puts e
|
31
|
+
end
|
32
|
+
create_token()
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.create_token
|
36
|
+
@@token = @@client.client_credentials.get_token({}, {'auth_scheme' => 'request_body', 'mode' => 'query'})
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.get(options = {})
|
40
|
+
options[:player] ||= ''
|
41
|
+
options[:query] ||= ''
|
42
|
+
options[:raw] ||= false
|
43
|
+
begin
|
44
|
+
response = @@token.get("#{@@api}#{options[:url]}?debug=true&player_id=#{options[:player]}&#{options[:query]}")
|
45
|
+
if options[:raw] == true
|
46
|
+
return response
|
47
|
+
end
|
48
|
+
json = JSON.parse(response.body)
|
49
|
+
if @@debug
|
50
|
+
puts "Playlyfe: GET #{@@api}#{options[:url]}?debug=true&player_id=#{options[:player]}&#{options[:query]}"
|
51
|
+
puts
|
52
|
+
puts json
|
53
|
+
end
|
54
|
+
return json
|
55
|
+
rescue OAuth2::Error => e
|
56
|
+
puts 'OAuth2 Error'
|
57
|
+
puts e.code
|
58
|
+
puts e.description
|
59
|
+
if e.code == 'invalid_token'
|
60
|
+
create_token()
|
61
|
+
get()
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.post(options = {})
|
67
|
+
opts = {}
|
68
|
+
opts[:headers] ||= {'Content-Type' => 'application/json'}
|
69
|
+
opts[:body] = JSON.generate(options[:body])
|
70
|
+
response = @@token.post("#{@@api}#{options[:url]}?debug=true&player_id=#{options[:player]}", opts)
|
71
|
+
json = JSON.parse(response.body)
|
72
|
+
if @@debug
|
73
|
+
puts "Playlyfe: POST #{@@api}#{options[:url]}?debug=true&player_id=#{options[:player]}"
|
74
|
+
puts
|
75
|
+
puts json
|
76
|
+
end
|
77
|
+
return json
|
78
|
+
end
|
79
|
+
end
|
data/test/test.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'playlyfe'
|
3
|
+
|
4
|
+
class PlaylyfeTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_start
|
7
|
+
Playlyfe.start(
|
8
|
+
client_id: "MTQ5MDFiODAtYzYzNS00OTMyLTg4NDktYjliNzE0ZmZiZDBl",
|
9
|
+
client_secret: "ZjI0YmNlNzgtNzU2ZC00NWU0LWIwZTItNjg1YjU4MTljNDRlODA4MDkyYzAtZTg3ZS0xMWUzLWE5ZTMtMzViZDM4NGNiMjQw"
|
10
|
+
)
|
11
|
+
puts Playlyfe.token
|
12
|
+
|
13
|
+
players = Playlyfe.get(url: '/players')
|
14
|
+
assert_not_nil players["data"]
|
15
|
+
assert_not_nil players["data"][0]
|
16
|
+
|
17
|
+
player = Playlyfe.get(url: '/player', player: 'goku')
|
18
|
+
assert_equal player["id"], "goku"
|
19
|
+
assert_equal player["alias"], "goku"
|
20
|
+
assert_equal player["enabled"], true
|
21
|
+
|
22
|
+
no_player = Playlyfe.get(url: '/player')
|
23
|
+
assert_nil no_player
|
24
|
+
|
25
|
+
Playlyfe.get(url: "/definitions/processes", player: 'goku')
|
26
|
+
Playlyfe.get(url: "/definitions/teams", player: 'goku')
|
27
|
+
Playlyfe.get(url: "/processes", player: 'goku')
|
28
|
+
Playlyfe.get(url: "/teams", player: 'goku')
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playlyfe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- - '
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.9.4
|
22
22
|
type: :runtime
|
@@ -24,16 +24,35 @@ dependencies:
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- - '
|
27
|
+
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 0.9.4
|
30
|
-
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: json
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.8.1
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.8.1
|
46
|
+
description: This gem can be used to interact with the playlyfe gamification platform
|
47
|
+
using oauth 2.0
|
31
48
|
email: peter@playlyfe.com
|
32
49
|
executables: []
|
33
50
|
extensions: []
|
34
51
|
extra_rdoc_files: []
|
35
52
|
files:
|
36
|
-
-
|
53
|
+
- Rakefile
|
54
|
+
- lib/playlyfe.rb
|
55
|
+
- test/test.rb
|
37
56
|
homepage: https://rubygems.org/gems/playlyfe
|
38
57
|
licenses:
|
39
58
|
- ApacheV2
|
@@ -58,5 +77,6 @@ rubyforge_project:
|
|
58
77
|
rubygems_version: 1.8.23
|
59
78
|
signing_key:
|
60
79
|
specification_version: 3
|
61
|
-
summary:
|
62
|
-
test_files:
|
80
|
+
summary: The playlyfe ruby sdk
|
81
|
+
test_files:
|
82
|
+
- test/test.rb
|