Class: Blitz::Command::API

Inherits:
Blitz::Command show all
Defined in:
lib/blitz/command/api.rb

Overview

:nodoc:

Constant Summary

Constants inherited from Blitz::Command

Api

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils

#shift

Methods included from Helper

#ask, #error, #msg

Instance Attribute Details

#credentialsObject

Returns the value of attribute credentials.



4
5
6
# File 'lib/blitz/command/api.rb', line 4

def credentials
  @credentials
end

Class Method Details

.clientObject



86
87
88
# File 'lib/blitz/command/api.rb', line 86

def self.client
    self.instance.client
end

.instanceObject



82
83
84
# File 'lib/blitz/command/api.rb', line 82

def self.instance
    @instance ||= API.new
end

Instance Method Details

#ask_for_credentialsObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/blitz/command/api.rb', line 50

def ask_for_credentials
    msg "Enter your blitz credentials. You can find this in #{green('Settings/API Key')}."
    print "User-ID: "
    user = ask
    print "API-Key: "
    apik = ask
    apik2 = Blitz::Client.new(user, apik, host).['api_key']
    if not apik2
        error "Authentication failed"
        exit 1
    end
    
    [ user, apik2 ]
end

#clientObject



14
15
16
17
# File 'lib/blitz/command/api.rb', line 14

def client
    get_credentials
    Blitz::Client.new(user, password, host)
end

#cmd_init(argv) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/blitz/command/api.rb', line 6

def cmd_init argv
    FileUtils.rm credentials_file rescue nil
    API.client
    
    msg "You are now ready to blitz!"
    msg "Try blitz help to learn more about the commands."
end

#credentials_fileObject



33
34
35
# File 'lib/blitz/command/api.rb', line 33

def credentials_file
    ENV['HOME'] + '/.blitz/credentials'
end

#get_credentialsObject



37
38
39
40
41
42
43
44
# File 'lib/blitz/command/api.rb', line 37

def get_credentials
    return if @credentials
    unless @credentials = read_credentials
        @credentials = ask_for_credentials
        save_credentials
    end
    @credentials
end

#hostObject



29
30
31
# File 'lib/blitz/command/api.rb', line 29

def host
    ENV['BLITZ_HOST'] || 'www.blitz.io'
end

#passwordObject



24
25
26
27
# File 'lib/blitz/command/api.rb', line 24

def password
    get_credentials
    @credentials[1]
end

#read_credentialsObject



46
47
48
# File 'lib/blitz/command/api.rb', line 46

def read_credentials
    File.exists?(credentials_file) and File.read(credentials_file).split("\n")        
end

#save_credentialsObject



65
66
67
# File 'lib/blitz/command/api.rb', line 65

def save_credentials
    write_credentials
end

#set_credentials_permissionsObject



77
78
79
80
# File 'lib/blitz/command/api.rb', line 77

def set_credentials_permissions
    FileUtils.chmod 0700, File.dirname(credentials_file)
    FileUtils.chmod 0600, credentials_file        
end

#userObject



19
20
21
22
# File 'lib/blitz/command/api.rb', line 19

def user
    get_credentials
    @credentials[0]
end

#write_credentialsObject



69
70
71
72
73
74
75
# File 'lib/blitz/command/api.rb', line 69

def write_credentials
    FileUtils.mkdir_p(File.dirname(credentials_file))
    File.open(credentials_file, 'w') do |f|
      f.puts self.credentials
    end
    set_credentials_permissions
end