Class: BookingSync::Engine

Inherits:
Rails::Engine
  • Object
show all
Defined in:
lib/bookingsync/engine.rb,
lib/bookingsync/engine/models.rb

Defined Under Namespace

Modules: AuthHelpers, Helpers, Models, SessionHelpers Classes: APIClient, ApplicationCredentials, CredentialsResolver

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.application_token(client_id: , client_secret: ) ⇒ Object



87
88
89
# File 'lib/bookingsync/engine.rb', line 87

def self.application_token(client_id: ENV["BOOKINGSYNC_APP_ID"], client_secret: ENV["BOOKINGSYNC_APP_SECRET"])
  oauth_client(client_id: client_id, client_secret: client_secret).client_credentials.get_token
end

.embedded!Object

Set the engine into embedded mode.

Embedded apps are loaded from within the BookingSync app store, and have a different method to redirect during the OAuth authorization process. This method will not work when the app is not embedded.



59
60
61
# File 'lib/bookingsync/engine.rb', line 59

def self.embedded!
  self.embedded = true
end

.oauth_client(client_id: , client_secret: ) ⇒ OAuth2::Client

OAuth client configured for the application.

The ENV variables used for configuration are described in README.

Returns:

  • (OAuth2::Client)

    configured OAuth client



78
79
80
81
82
83
84
85
# File 'lib/bookingsync/engine.rb', line 78

def self.oauth_client(client_id: ENV["BOOKINGSYNC_APP_ID"], client_secret: ENV["BOOKINGSYNC_APP_SECRET"])
  client_options = {
    site: ENV["BOOKINGSYNC_URL"] || 'https://www.bookingsync.com',
    connection_opts: { headers: { accept: "application/vnd.api+json" } }
  }
  client_options[:ssl] = { verify: ENV['BOOKINGSYNC_VERIFY_SSL'] != 'false' }
  OAuth2::Client.new(client_id, client_secret, client_options)
end

.standalone!Object

Set the engine into standalone mode.

This setting is requried for the applications using this Engine to work outside of the BookingSync app store.

Restores the normal mode of redirecting during OAuth authorization.



69
70
71
# File 'lib/bookingsync/engine.rb', line 69

def self.standalone!
  self.embedded = false
end

Instance Method Details

#embeddedBoolean

Returns:

  • (Boolean)


45
# File 'lib/bookingsync/engine.rb', line 45

cattr_accessor :embedded

#sign_out_afterFixnum

Duration of inactivity after which the authorization will be reset. See BookingSync::Engine::SessionHelpers#sign_out_if_inactive.

Returns:

  • (Fixnum)


51
# File 'lib/bookingsync/engine.rb', line 51

cattr_accessor :sign_out_after