Sha256: a975c400743fb93c09e938aa3cd7df40bba8eea678cca2a49e16da6757d00950

Contents?: true

Size: 909 Bytes

Versions: 10

Compression:

Stored size: 909 Bytes

Contents

module MarketplaceKit
  module Services
    class UserAuthentication
      include Services::Loggable

      def authenticate
        return unless requires_login?

        credentials = ask_for_email_and_password
        login_and_remember credentials
      end

      protected

      def requires_login?
        MarketplaceKit.config.token.empty? || gateway.login_required?
      end

      def ask_for_email_and_password
        log :ask_for_email
        email = STDIN.gets.chomp

        log :ask_for_password
        password = STDIN.noecho(&:gets).chomp

        { email: email, password: password }
      end

      def login_and_remember(credentials)
        user_token = gateway.login credentials[:email], credentials[:password]
        MarketplaceKit.config.set_token user_token
      end

      private

      def gateway
        @gateway ||= Services::ApiGateway.new
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
marketplace-kit-0.2.4 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.2.3 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.2.2 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.2.1 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.2.0 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.1.4 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.1.3 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.1.2 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.1.1 lib/marketplace_kit/services/user_authentication.rb
marketplace-kit-0.1.0 lib/marketplace_kit/services/user_authentication.rb