bookingsync-engine 0.5.0 → 1.0.0

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: ea0fd3e150abdace341f9898eecebd300b547250
4
- data.tar.gz: cf2fea9ac3c75e756d57279456d7f924a586e088
3
+ metadata.gz: d2e9e1a1b065139938c74227068d00fa52244973
4
+ data.tar.gz: 29b802bfa945e74dd09ad882090303e13d19966c
5
5
  SHA512:
6
- metadata.gz: 56acfa9eeb2a5ef113cd8c5cd22b55f8c8b7aa5b6ffd17faffc0f5ec3c77aedc15a28050f4eaedf8f2cd88bcbac507d810932ccec5164f7004457761ef418dc7
7
- data.tar.gz: 2201599717c678de4a7d35609dc5d86f3730074b69275ff6cfbe8164c0082a8f28e96024b8ea73a1d14ac8ef4c2ee9ccce3d70e6fa8c353af8b6ba210ea3299c
6
+ metadata.gz: 79ec41bdd62cf2891666617393585a9e9ee008bc4e6009332c0cdd4c17e5e7043e7e203a6b7f4db60f484811e7dd97689e47d6ff40aac199d19ec85a91c25f63
7
+ data.tar.gz: 3e64fbceabffa3bb2211098586222228b424b9520c33e9ec4a3d67e3d7d00ed058c75295bf25e701383b3dd90a780e22e6acc2f70cf7170bf4c86c4147db3b64
data/README.md CHANGED
@@ -25,11 +25,17 @@ Then bundle install:
25
25
  bundle install
26
26
  ```
27
27
 
28
- Then BookingSync routes need to be mounted inside you apps routes.rb:
28
+ Then mount BookingSync Authorization routes inside `routes.rb`:
29
29
  ```ruby
30
30
  mount BookingSync::Engine => '/'
31
31
  ```
32
32
 
33
+ This will add the following routes:
34
+
35
+ * `/auth/bookingsync/callback`
36
+ * `/auth/failure`
37
+ * `/signout`
38
+
33
39
  BookingSync Engine uses the `Account` model to authenticate each BookingSync Account, if you do not have an `Account` model yet, create one:
34
40
 
35
41
  ```console
@@ -39,7 +45,7 @@ rails g model Account
39
45
  Then, generate a migration to add OAuth fields for the `Account` class:
40
46
 
41
47
  ```console
42
- rails g migration AddOAuthFieldsToAccounts provider:string uid:integer:index \
48
+ rails g migration AddOAuthFieldsToAccounts provider:string synced_id:integer:index \
43
49
  name:string oauth_access_token:string oauth_refresh_token:string \
44
50
  oauth_expires_at:string
45
51
  ```
@@ -25,13 +25,11 @@ module BookingSync
25
25
  require "bookingsync/engine/helpers"
26
26
  require "bookingsync/engine/session_helpers"
27
27
  require "bookingsync/engine/auth_helpers"
28
- require "bookingsync/engine/token_helpers"
29
28
 
30
29
  ActiveSupport.on_load :action_controller do
31
30
  include BookingSync::Engine::Helpers
32
31
  include BookingSync::Engine::SessionHelpers
33
32
  include BookingSync::Engine::AuthHelpers
34
- include BookingSync::Engine::TokenHelpers
35
33
  end
36
34
  end
37
35
 
@@ -11,16 +11,16 @@ module BookingSync::Engine::AuthHelpers
11
11
 
12
12
  # @return [Account, nil] currently authorized Account or nil if unauthorized
13
13
  def current_account
14
- @current_account ||= ::Account.find_by(uid: session[:account_id]) if session[:account_id].present?
14
+ @current_account ||= ::Account.find_by(synced_id: session[:account_id]) if session[:account_id].present?
15
15
  end
16
16
 
17
17
  # Callback after account is authorized.
18
18
  #
19
- # Stores the authorized account's uid in the session.
19
+ # Stores the authorized account's synced_id in the session.
20
20
  #
21
21
  # @param account [Account] the just authorized account
22
22
  def account_authorized(account)
23
- session[:account_id] = account.uid.to_s
23
+ session[:account_id] = account.synced_id.to_s
24
24
  end
25
25
 
26
26
  # Clear authorization if the account passed from the BookingSync app store
@@ -2,13 +2,13 @@ module BookingSync::Engine::Model
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
5
- validates :uid, uniqueness: true
5
+ validates :synced_id, uniqueness: true
6
6
  scope :authorized, -> { where.not(oauth_access_token: nil) }
7
7
  end
8
8
 
9
9
  module ClassMethods
10
10
  def from_omniauth(auth)
11
- find_or_initialize_by(uid: auth.uid, provider: auth.provider).tap do |account|
11
+ find_or_initialize_by(synced_id: auth.uid, provider: auth.provider).tap do |account|
12
12
  account.name = auth.info.business_name
13
13
  account.update_token(auth.credentials)
14
14
  account.save!
@@ -1,3 +1,3 @@
1
1
  module BookingSync
2
- ENGINE_VERSION = "0.5.0"
2
+ ENGINE_VERSION = "1.0.0"
3
3
  end
@@ -2,7 +2,7 @@ class CreateAccounts < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :accounts do |t|
4
4
  t.string :provider
5
- t.integer :uid
5
+ t.integer :synced_id
6
6
  t.string :name
7
7
  t.string :oauth_access_token
8
8
  t.string :oauth_refresh_token
@@ -20,7 +20,7 @@ Dummy::Application.configure do
20
20
  # config.action_dispatch.rack_cache = true
21
21
 
22
22
  # Disable Rails's static asset server (Apache or nginx will already do this).
23
- config.serve_static_assets = false
23
+ config.serve_static_files = false
24
24
 
25
25
  # Compress JavaScripts and CSS.
26
26
  config.assets.js_compressor = :uglifier
@@ -13,7 +13,7 @@ Dummy::Application.configure do
13
13
  config.eager_load = false
14
14
 
15
15
  # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_assets = true
16
+ config.serve_static_files = true
17
17
  config.static_cache_control = "public, max-age=3600"
18
18
 
19
19
  # Show full error reports and disable caching.
@@ -1,8 +1,8 @@
1
1
  class AddOAuthFieldsToAccounts < ActiveRecord::Migration
2
2
  def change
3
3
  add_column :accounts, :provider, :string
4
- add_column :accounts, :uid, :integer
5
- add_index :accounts, :uid
4
+ add_column :accounts, :synced_id, :integer
5
+ add_index :accounts, :synced_id
6
6
  add_column :accounts, :name, :string
7
7
  add_column :accounts, :oauth_access_token, :string
8
8
  add_column :accounts, :oauth_refresh_token, :string
@@ -17,13 +17,13 @@ ActiveRecord::Schema.define(version: 20140522110454) do
17
17
  t.datetime "created_at"
18
18
  t.datetime "updated_at"
19
19
  t.string "provider"
20
- t.integer "uid"
20
+ t.integer "synced_id"
21
21
  t.string "name"
22
22
  t.string "oauth_access_token"
23
23
  t.string "oauth_refresh_token"
24
24
  t.string "oauth_expires_at"
25
25
  end
26
26
 
27
- add_index "accounts", ["uid"], name: "index_accounts_on_uid"
27
+ add_index "accounts", ["synced_id"], name: "index_accounts_on_synced_id"
28
28
 
29
29
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  one:
4
4
  provider: MyString
5
- uid: 1
5
+ synced_id: 1
6
6
  name: MyString
7
7
  oauth_access_token: MyString
8
8
  oauth_refresh_token: MyString
@@ -10,7 +10,7 @@ one:
10
10
 
11
11
  two:
12
12
  provider: MyString
13
- uid: 1
13
+ synced_id: 1
14
14
  name: MyString
15
15
  oauth_access_token: MyString
16
16
  oauth_refresh_token: MyString
@@ -14,16 +14,16 @@ RSpec.describe Account, type: :model do
14
14
  end
15
15
 
16
16
  describe "validations" do
17
- it { is_expected.to validate_uniqueness_of(:uid) }
17
+ it { is_expected.to validate_uniqueness_of(:synced_id) }
18
18
  end
19
19
 
20
20
  describe ".from_omniauth" do
21
- before { Account.create!(provider: "bookingsync", uid: 456) }
21
+ before { Account.create!(provider: "bookingsync", synced_id: 456) }
22
22
 
23
23
  let(:auth) { OmniAuth.config.mock_auth[:bookingsync] }
24
24
 
25
25
  context "when account exists" do
26
- let!(:account) { Account.create!(provider: "bookingsync", uid: 123) }
26
+ let!(:account) { Account.create!(provider: "bookingsync", synced_id: 123) }
27
27
 
28
28
  it "loads the existing account" do
29
29
  expect(Account.from_omniauth(auth)).to eql(account)
@@ -49,8 +49,8 @@ RSpec.describe Account, type: :model do
49
49
  describe "the newly created account" do
50
50
  let!(:account) { Account.from_omniauth(auth) }
51
51
 
52
- it "sets uid and provider from auth" do
53
- expect(account.uid).to eq 123
52
+ it "sets synced_id and provider from auth" do
53
+ expect(account.synced_id).to eq 123
54
54
  expect(account.provider).to eq "bookingsync"
55
55
  end
56
56
 
@@ -61,7 +61,7 @@ RSpec.describe Account, type: :model do
61
61
 
62
62
  describe "#token" do
63
63
  let(:expires_at) { 1.day.from_now.to_i }
64
- let!(:account) { Account.create!(uid: 123, oauth_access_token: "token",
64
+ let!(:account) { Account.create!(synced_id: 123, oauth_access_token: "token",
65
65
  oauth_refresh_token: "refresh_token", oauth_expires_at: expires_at) }
66
66
 
67
67
  context "when the stored token is fresh" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookingsync-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastien Grosjean
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-13 00:00:00.000000000 Z
12
+ date: 2015-07-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -158,7 +158,6 @@ files:
158
158
  - lib/bookingsync/engine/helpers.rb
159
159
  - lib/bookingsync/engine/model.rb
160
160
  - lib/bookingsync/engine/session_helpers.rb
161
- - lib/bookingsync/engine/token_helpers.rb
162
161
  - lib/bookingsync/engine/version.rb
163
162
  - lib/generators/bookingsync/install/install_generator.rb
164
163
  - lib/generators/bookingsync/install/templates/create_bookingsync_accounts.rb
@@ -236,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
235
  version: '0'
237
236
  requirements: []
238
237
  rubyforge_project:
239
- rubygems_version: 2.2.2
238
+ rubygems_version: 2.4.5
240
239
  signing_key:
241
240
  specification_version: 4
242
241
  summary: A Rails engine to simplify integration with BookingSync API
@@ -1,31 +0,0 @@
1
- module BookingSync::Engine::TokenHelpers
2
- extend ActiveSupport::Concern
3
-
4
- private
5
-
6
- # OAuth access token for the current account. Will refresh the token
7
- # if it's expired and store the new token in the database.
8
- #
9
- # @return [OAuth2::AccessToken] access token for current account
10
- def current_account_token
11
- current_account.token
12
- end
13
-
14
- # OAuth access token for the application. The token is obtained from
15
- # {BookingSync::Engine#appliation_token}.
16
- #
17
- # Will fetch new token if the current one is expired.
18
- #
19
- # The token is stored in thread local storage, to reduce the amount of
20
- # token requests.
21
- #
22
- # @return [OAuth2::AccessToken] access token for application
23
- def application_token
24
- token = Thread.current[:_bookingsync_application_token]
25
- if token.nil? || token.expired?
26
- token = Thread.current[:_bookingsync_application_token] =
27
- BookingSync::Engine.application_token
28
- end
29
- token
30
- end
31
- end