playlyfe 0.0.1 → 0.1.0

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