auth-transis-client 0.0.3 → 0.0.4

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/Gemfile.lock ADDED
@@ -0,0 +1,41 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ auth-transis-client (0.0.3)
5
+ faraday
6
+ faraday_middleware
7
+ omniauth
8
+ omniauth-oauth2
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ faraday (0.8.4)
14
+ multipart-post (~> 1.1)
15
+ faraday_middleware (0.8.8)
16
+ faraday (>= 0.7.4, < 0.9)
17
+ hashie (1.2.0)
18
+ httpauth (0.1)
19
+ jwt (0.1.5)
20
+ multi_json (>= 1.0)
21
+ multi_json (1.3.6)
22
+ multipart-post (1.1.5)
23
+ oauth2 (0.8.0)
24
+ faraday (~> 0.8)
25
+ httpauth (~> 0.1)
26
+ jwt (~> 0.1.4)
27
+ multi_json (~> 1.0)
28
+ rack (~> 1.2)
29
+ omniauth (1.1.0)
30
+ hashie (~> 1.2)
31
+ rack
32
+ omniauth-oauth2 (1.1.0)
33
+ oauth2 (~> 0.8.0)
34
+ omniauth (~> 1.0)
35
+ rack (1.4.1)
36
+
37
+ PLATFORMS
38
+ ruby
39
+
40
+ DEPENDENCIES
41
+ auth-transis-client!
@@ -18,4 +18,6 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
  gem.add_dependency 'omniauth'
20
20
  gem.add_dependency 'omniauth-oauth2'
21
+ gem.add_dependency 'faraday'
22
+ gem.add_dependency 'faraday_middleware'
21
23
  end
@@ -2,11 +2,66 @@ require "auth-transis-client/version"
2
2
  require 'omniauth'
3
3
  require 'omniauth-oauth2'
4
4
  require "omni_auth"
5
+ require 'faraday_middleware'
5
6
 
6
7
  module Auth
7
8
  module Transis
8
- module Client
9
- # Your code goes here...
9
+ class Client
10
+ def initialize(opts={})
11
+ fill_in_access_token!(opts)
12
+ if opts[:site] && opts[:token]
13
+ @connection = Faraday.new opts[:site] do |conn|
14
+ conn.request :oauth2, opts[:token]
15
+ conn.request :json
16
+
17
+ conn.response :json, :content_type => /\bjson$/
18
+
19
+ conn.use :instrumentation
20
+ conn.adapter Faraday.default_adapter
21
+ end
22
+ else
23
+ raise <<-ERROR
24
+ Either provide :token or provide :site, :username, :password, :client_id, and :client_secret
25
+ ERROR
26
+ end
27
+ end
28
+
29
+ def fill_in_access_token!(opts)
30
+ return if opts[:token]
31
+ return unless opts[:site] && opts[:username] && opts[:client_id] && opts[:client_secret]
32
+ connection = Faraday.new opts[:site] do |conn|
33
+ conn.request :json
34
+ conn.response :json, :content_type => /\bjson$/
35
+ conn.use :instrumentation
36
+ conn.adapter Faraday.default_adapter
37
+ end
38
+ response = connection.post('/oauth/token',
39
+ :grant_type => 'password',
40
+ :client_id => opts[:client_id],
41
+ :client_secret => opts[:client_secret],
42
+ :username => opts[:username],
43
+ :password => opts[:password])
44
+ raise 'Failed to get an access token' unless response.success? && response.body['access_token']
45
+ opts[:token] = response.body['access_token']
46
+ end
47
+
48
+ def get_credentials
49
+ @connection.get('/api/v1/me.json').body
50
+ end
51
+
52
+ def get_organizations(user_id=nil)
53
+ options = {}
54
+ options[:user_id]=user_id if user_id
55
+ @connection.get('/api/v1/organizations.json', options).body
56
+ end
57
+
58
+ def get_members_of_organization(organization_id)
59
+ @connection.get("/api/v1/organizations/#{organization_id}/members.json").body
60
+ end
61
+
62
+ def add_member_to_organization(organization_id, email_address)
63
+ @connection.post("/api/v1/organizations/#{organization_id}/members.json", :email=>email_address)
64
+ end
10
65
  end
11
66
  end
12
67
  end
@@ -1,7 +1,7 @@
1
1
  module Auth
2
2
  module Transis
3
- module Client
4
- VERSION = "0.0.3"
3
+ class Client
4
+ VERSION = "0.0.4"
5
5
  end
6
6
  end
7
7
  end
data/lib/omni_auth.rb CHANGED
@@ -17,6 +17,10 @@ module OmniAuth
17
17
  }
18
18
  end
19
19
 
20
+ def request_phase
21
+ redirect client.auth_code.authorize_url({:redirect_uri => callback_url}.merge(authorize_params).merge(request.params))
22
+ end
23
+
20
24
  def raw_info
21
25
  @raw_info ||= access_token.get('/api/v1/me.json').parsed
22
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auth-transis-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-20 00:00:00.000000000 Z
12
+ date: 2012-10-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: faraday
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: faraday_middleware
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  description: This is the client for TransisApps
47
79
  email:
48
80
  - tim@galeckas.com
@@ -52,6 +84,7 @@ extra_rdoc_files: []
52
84
  files:
53
85
  - .gitignore
54
86
  - Gemfile
87
+ - Gemfile.lock
55
88
  - LICENSE.txt
56
89
  - README.md
57
90
  - Rakefile