playlyfe 0.0.1 → 0.1.0
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.
- 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
|