1
0

evernote_concern.rb 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. module EvernoteConcern
  2. extend ActiveSupport::Concern
  3. included do
  4. include Oauthable
  5. validate :validate_evernote_options
  6. valid_oauth_providers :evernote
  7. gem_dependency_check { defined?(EvernoteOAuth) && Devise.omniauth_providers.include?(:evernote) }
  8. end
  9. def evernote_client
  10. EvernoteOAuth::Client.new(
  11. token: evernote_oauth_token,
  12. consumer_key: evernote_consumer_key,
  13. consumer_secret: evernote_consumer_secret,
  14. # set to false in production
  15. sandbox: true
  16. )
  17. end
  18. private
  19. def validate_evernote_options
  20. unless evernote_consumer_key.present? &&
  21. evernote_consumer_secret.present? &&
  22. evernote_oauth_token.present?
  23. errors.add(:base, "Evernote consumer_key, consumer_secret, oauth_token, and oauth_token_secret are required to authenticate with the Twitter API. You can provide these as options to this Agent, or as Credentials with the same names, but starting with 'evernote_'.")
  24. end
  25. end
  26. def evernote_consumer_key
  27. (config = Devise.omniauth_configs[:evernote]) && config.strategy.consumer_key
  28. end
  29. def evernote_consumer_secret
  30. (config = Devise.omniauth_configs[:evernote]) && config.strategy.consumer_secret
  31. end
  32. def evernote_oauth_token
  33. service && service.token
  34. end
  35. def evernote_oauth_token_secret
  36. service && service.secret
  37. end
  38. end