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.
Files changed (5) hide show
  1. data/Rakefile +8 -0
  2. data/lib/playlyfe.rb +79 -0
  3. data/test/test.rb +30 -0
  4. metadata +27 -7
  5. data/lib/main.rb +0 -5
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ end
6
+
7
+ desc "Run tests"
8
+ task :default => :test
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.1
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
- description: Much longer explanation of the example!
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
- - lib/main.rb
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: This is an example!
62
- test_files: []
80
+ summary: The playlyfe ruby sdk
81
+ test_files:
82
+ - test/test.rb
data/lib/main.rb DELETED
@@ -1,5 +0,0 @@
1
- class Hola
2
- def self.hi
3
- puts "Hello world!"
4
- end
5
- end