patreon 0.0.2 → 0.0.3

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: 0295eee100f406c0b5474203c44b61e7cdeb219a
4
- data.tar.gz: 73842fc521379bc4b679caaa22a0bb878b8368aa
3
+ metadata.gz: 66814c53f7b8f73796f894899354ca35139cd6ff
4
+ data.tar.gz: cb2c1ccd75769b0f2e7fdce7facad8141910346f
5
5
  SHA512:
6
- metadata.gz: ffa98154560b4b4acbf931cdb6b5059334ef51a0768ac2c9e14506691b38174870d0430890ed6ca4ec526f6b8e38d7c56a7d5cf8e88a0aa122884f2d8b017f25
7
- data.tar.gz: 13754e42fc27838da383cbee46ea0e904483471203f2eb75cf82087262c9e469e9c246477446f0d480993d97ba46a67a7163c04ebe3da682c258e5ec52450a8d
6
+ metadata.gz: b7e9fc6e8d9c63e1d8f98abac0bd31a8c43b2c6459e4c1fac24c659759793bda064bbb6fe02b87b2b8d8949de9bd91460075aed3404ff0a8fdd28c97820ab7b4
7
+ data.tar.gz: 31a5e025feb858f5a4aa507e16dc12745c4596ba35be067cd186b47043beb90194b724185735cb487ab27555201223bceb3521feeea8612cee16a52b43cbd173
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # patreon-ruby
2
+ Interact with the Patreon API via OAuth
3
+
4
+ Step 1. Get your client_id and client_secret
5
+ ---
6
+ Visit the [OAuth Documentation Page](patreon.com/oauth2/documentation)
7
+ while logged in as a Patreon creator to register your client.
8
+
9
+ This will provide you with a `client_id` and a `client_secret`.
10
+
11
+ Step 2. Use this library
12
+ ---
13
+ e.g., in a Rails route
14
+ ```ruby
15
+ require 'patreon'
16
+
17
+ class OAuthController < ApplicationController
18
+ def redirect
19
+ oauth_client = Patreon::OAuth.new(client_id, client_secret)
20
+ tokens = oauth_client.get_tokens(params[:code], redirect_uri)
21
+ access_token = tokens['access_token']
22
+
23
+ api_client = Patreon::API.new(access_token)
24
+ user_response = api_client.fetch_user()
25
+ @user = user_response['data']
26
+ included = user_response['included']
27
+ if included
28
+ @pledge = included.find {|obj| obj['type'] == 'pledge' && obj['relationships']['creator']['data']['id'] == creator_id}
29
+ @campaign = included.find {|obj| obj['type'] == 'campaign' && obj['relationships']['creator']['data']['id'] == creator_id}
30
+ else
31
+ @pledge = nil
32
+ @campaign = nil
33
+ end
34
+ end
35
+ end
36
+ ```
@@ -0,0 +1,28 @@
1
+ require 'net/http'
2
+ require 'json'
3
+
4
+ module Patreon
5
+ class API
6
+ def initialize(access_token)
7
+ @access_token = access_token
8
+ end
9
+
10
+ def fetch_user
11
+ get_json('current_user')
12
+ end
13
+
14
+ def fetch_campaign_and_patrons(access_token)
15
+ get_json('current_user/campaign')
16
+ end
17
+
18
+ private
19
+
20
+ def get_json(suffix)
21
+ url = URI.parse("https://api.patreon.com/oauth2/api/#{suffix}")
22
+ req = Net::HTTP::Get.new(url.to_s)
23
+ req['Authorization'] = "Bearer #{@access_token}"
24
+ res = Net::HTTP.start(url.host, url.port, :use_ssl => true) {|http| http.request(req)}
25
+ JSON.parse(res.body)
26
+ end
27
+ end
28
+ end
data/lib/patreon/oauth.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'net/http'
2
+ require 'json'
3
+
1
4
  module Patreon
2
5
  class OAuth
3
6
  def initialize(client_id, client_secret)
data/patreon.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "patreon"
7
- gem.version = "0.0.2"
7
+ gem.version = "0.0.3"
8
8
  gem.authors = ["David Kettler"]
9
9
  gem.email = ["david@patreon.com"]
10
10
  gem.description = "Interact with the Patreon API via OAuth"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: patreon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kettler
@@ -18,7 +18,9 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - ".gitignore"
21
+ - README.md
21
22
  - lib/patreon.rb
23
+ - lib/patreon/api.rb
22
24
  - lib/patreon/oauth.rb
23
25
  - patreon.gemspec
24
26
  homepage: https://github.com/Patreon/patreon-ruby