prooflink_connect 0.0.20 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock ADDED
@@ -0,0 +1,58 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ prooflink_connect (0.0.20)
5
+ activesupport
6
+ httparty
7
+ json
8
+ oauth2
9
+
10
+ GEM
11
+ remote: http://rubygems.org/
12
+ specs:
13
+ activesupport (3.2.7)
14
+ i18n (~> 0.6)
15
+ multi_json (~> 1.0)
16
+ addressable (2.2.8)
17
+ crack (0.3.1)
18
+ diff-lcs (1.1.3)
19
+ faraday (0.8.1)
20
+ multipart-post (~> 1.1)
21
+ httparty (0.8.3)
22
+ multi_json (~> 1.0)
23
+ multi_xml
24
+ httpauth (0.1)
25
+ i18n (0.6.0)
26
+ json (1.7.4)
27
+ jwt (0.1.5)
28
+ multi_json (>= 1.0)
29
+ multi_json (1.3.6)
30
+ multi_xml (0.5.1)
31
+ multipart-post (1.1.5)
32
+ oauth2 (0.8.0)
33
+ faraday (~> 0.8)
34
+ httpauth (~> 0.1)
35
+ jwt (~> 0.1.4)
36
+ multi_json (~> 1.0)
37
+ rack (~> 1.2)
38
+ rack (1.4.1)
39
+ rspec (2.11.0)
40
+ rspec-core (~> 2.11.0)
41
+ rspec-expectations (~> 2.11.0)
42
+ rspec-mocks (~> 2.11.0)
43
+ rspec-core (2.11.1)
44
+ rspec-expectations (2.11.2)
45
+ diff-lcs (~> 1.1.3)
46
+ rspec-mocks (2.11.1)
47
+ webmock (1.8.8)
48
+ addressable (~> 2.2.8)
49
+ crack (>= 0.1.7)
50
+
51
+ PLATFORMS
52
+ ruby
53
+
54
+ DEPENDENCIES
55
+ bundler (>= 1.0.0)
56
+ prooflink_connect!
57
+ rspec
58
+ webmock
@@ -7,6 +7,7 @@ module ProoflinkConnect
7
7
  autoload :ShareButton, "prooflink_connect/share_button"
8
8
  autoload :Invite, "prooflink_connect/invite"
9
9
  autoload :Share, "prooflink_connect/share"
10
+ autoload :Activity, "prooflink_connect/activity"
10
11
 
11
12
  def self.config
12
13
  @configuration ||= Configuration.new
@@ -0,0 +1,35 @@
1
+ require 'oauth2'
2
+
3
+ module ProoflinkConnect
4
+ class Activity
5
+
6
+ # POST /api/v2/activities
7
+ # parameters:
8
+ # - activity (required) => {:activity_type => {:identifier => "some_identifier", :name => "Some name", :value => "1"}}
9
+ # - user => {:email => "foo@bar.com", :first_name => "Foo", :last_name => "Bar"} [for new user]
10
+ # - user_token => "123-456-789" [for existing user]
11
+ # - extra_info (optional) => {} [extra custom info you like to pass to activity]
12
+
13
+ # SAMPLE:
14
+
15
+ # ProoflinkConnect::Activity.log({
16
+ # activity_type: {identifier: 'some_identifier', name: 'some_name', value: '1'},
17
+ # user: {first_name: 'jon', last_name: 'doe', email: 'jon@doe.com', identity_provider: 'prooflink'},
18
+ # extra_info: {your_id: '1234'}
19
+ # })
20
+
21
+ def self.log(params)
22
+ oauth_access_token = ProoflinkConnect.config.oauth_access_token
23
+ client = OAuth2::Client.new(nil, nil, {:site => ProoflinkConnect.config.base_uri})
24
+ access_token = OAuth2::AccessToken.new(client, oauth_access_token, :header_format => "OAuth %s")
25
+
26
+ begin
27
+ response = access_token.post 'api/v2/activities', :body => {:activity => params}
28
+ return JSON.parse(response.body)
29
+
30
+ rescue OAuth2::Error => error
31
+ return JSON.parse(error.response.body)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -14,7 +14,7 @@ module ProoflinkConnect
14
14
  @@defaults.each_pair{|k,v| self.send("#{k}=",v)}
15
15
  end
16
16
 
17
- attr_accessor :provider_endpoint, :subdomain, :api_key, :protocol, :locale
17
+ attr_accessor :provider_endpoint, :subdomain, :api_key, :protocol, :locale, :oauth_access_token
18
18
 
19
19
  def validate!
20
20
  raise InvalidConfigurationError if [:provider_endpoint, :subdomain, :api_key, :protocol].any?{|option|send(option).blank?}
@@ -1,3 +1,3 @@
1
1
  module ProoflinkConnect
2
- VERSION = "0.0.20"
2
+ VERSION = "0.0.21"
3
3
  end
@@ -5,8 +5,8 @@ Gem::Specification.new do |s|
5
5
  s.name = "prooflink_connect"
6
6
  s.version = ProoflinkConnect::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
- s.authors = ["Chiel Wester", "Jeroen Bulters"]
9
- s.email = ["chiel.wester@holder.nl", "jeroen@bulte.rs"]
8
+ s.authors = ["Chiel Wester", "Jermaine Oosterling"]
9
+ s.email = ["chiel.wester@holder.nl", "jermaine.oosterling@prooflink.com"]
10
10
  s.homepage = "https://github.com/prooflink/prooflink_connect"
11
11
  s.summary = "Make a connection to the prooflink connect api"
12
12
  s.description = "Make a connection to the prooflink connect api for single sign on authentication"
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.add_development_dependency "bundler", ">= 1.0.0"
22
22
  s.add_development_dependency "rspec"
23
23
  s.add_development_dependency "webmock"
24
+ s.add_dependency 'oauth2'
24
25
 
25
26
  s.files = `git ls-files`.split("\n")
26
27
  s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe ProoflinkConnect::Activity do
4
+ before do
5
+ reset_configuration
6
+ end
7
+
8
+ before do
9
+ stub_request(:post, "https://example.prooflink.com/api/v2/activities").
10
+ with(:headers => {'Accept'=>'*/*', 'Authorization'=>'OAuth 4321', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'Ruby'}).
11
+ to_return do |request|
12
+ if request.body.empty?
13
+ {:body => {:status => "ERROR", :message => "no activity specified"}.to_json}
14
+ else
15
+ {:body => {:status => "SUCCESS", :message => "activity succesfully created"}.to_json}
16
+ end
17
+ end
18
+ end
19
+
20
+ it "should log activity as expected" do
21
+ params = {:activity_type => {:identifier => "my_identifier", :name => "My name", :value => 1},
22
+ :user => {:email => "jon@doe.com", :identity_provider => 'prooflink'}}
23
+
24
+ ProoflinkConnect::Activity.log(params).should eq({"status"=>"SUCCESS", "message"=>"activity succesfully created"})
25
+ ProoflinkConnect::Activity.log({}).should eq({"status"=>"ERROR", "message"=>"no activity specified"})
26
+ end
27
+ end
data/spec/spec_helper.rb CHANGED
@@ -9,5 +9,6 @@ def reset_configuration
9
9
  config.protocol = "https"
10
10
  config.api_key = "1234"
11
11
  config.locale = "en"
12
+ config.oauth_access_token = "4321"
12
13
  end
13
14
  end
metadata CHANGED
@@ -1,23 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prooflink_connect
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 53
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 20
10
- version: 0.0.20
9
+ - 21
10
+ version: 0.0.21
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chiel Wester
14
- - Jeroen Bulters
14
+ - Jermaine Oosterling
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-12-21 00:00:00 +01:00
20
- default_executable:
19
+ date: 2012-07-30 00:00:00 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
22
  name: json
@@ -105,10 +104,24 @@ dependencies:
105
104
  version: "0"
106
105
  type: :development
107
106
  version_requirements: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: oauth2
109
+ prerelease: false
110
+ requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ type: :runtime
120
+ version_requirements: *id007
108
121
  description: Make a connection to the prooflink connect api for single sign on authentication
109
122
  email:
110
123
  - chiel.wester@holder.nl
111
- - jeroen@bulte.rs
124
+ - jermaine.oosterling@prooflink.com
112
125
  executables: []
113
126
 
114
127
  extensions: []
@@ -120,9 +133,11 @@ files:
120
133
  - .rspec
121
134
  - .travis.yml
122
135
  - Gemfile
136
+ - Gemfile.lock
123
137
  - README.md
124
138
  - Rakefile
125
139
  - lib/prooflink_connect.rb
140
+ - lib/prooflink_connect/activity.rb
126
141
  - lib/prooflink_connect/assertion.rb
127
142
  - lib/prooflink_connect/configuration.rb
128
143
  - lib/prooflink_connect/invite.rb
@@ -133,12 +148,12 @@ files:
133
148
  - lib/prooflink_connect/share_button.rb
134
149
  - lib/prooflink_connect/version.rb
135
150
  - prooflink_connect.gemspec
151
+ - spec/prooflink_connect/activity_spec.rb
136
152
  - spec/prooflink_connect/configuration_spec.rb
137
153
  - spec/prooflink_connect/invite_spec.rb
138
154
  - spec/prooflink_connect/share_spec.rb
139
155
  - spec/prooflink_connect_spec.rb
140
156
  - spec/spec_helper.rb
141
- has_rdoc: true
142
157
  homepage: https://github.com/prooflink/prooflink_connect
143
158
  licenses: []
144
159
 
@@ -170,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
185
  requirements: []
171
186
 
172
187
  rubyforge_project: prooflink_connect
173
- rubygems_version: 1.4.1
188
+ rubygems_version: 1.8.11
174
189
  signing_key:
175
190
  specification_version: 3
176
191
  summary: Make a connection to the prooflink connect api