Sha256: 342fbc7ef645440b4f9f0df25839e3a0e119a61de0e7e7940bef4f291406cbd1
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true require 'io/console' require 'uffizzi' require 'uffizzi/response_helper' module Uffizzi class CLI::Login include ApiClient def initialize(options) @options = options end def run password = IO::console.getpass('Enter Password: ') params = prepare_request_params(password) response = create_session(@options[:hostname], params) if Uffizzi::ResponseHelper.created?(response) handle_succeed_response(response) else handle_failed_response(response) end end private def prepare_request_params(password) { user: { email: @options[:user], password: password.strip, }, } end def handle_failed_response(response) print_errors(response[:body][:errors]) end def handle_succeed_response(response) account = response[:body][:user][:accounts].first return Uffizzi.ui.say('No account related to this email') unless account_valid?(account) ConfigFile.create(account[:id], response[:headers], @options[:hostname]) end def account_valid?(account) account[:state] == 'active' end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
uffizzi-cli-0.1.4.3 | lib/uffizzi/cli/login.rb |
uffizzi-cli-0.1.4.2 | lib/uffizzi/cli/login.rb |
uffizzi-cli-0.1.3 | lib/uffizzi/cli/login.rb |