Class: HaveAPI::Client::Authentication::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/haveapi/client/authentication/base.rb

Overview

Base class for all authentication providers.

Authentication providers may reimplement only methods they need. You do not have to reimplement all methods.

Direct Known Subclasses

Basic, NoAuth, Token

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(communicator, description, opts, &block) ⇒ Base

Returns a new instance of Base.



33
34
35
36
37
38
39
40
# File 'lib/haveapi/client/authentication/base.rb', line 33

def initialize(communicator, description, opts, &block)
  @communicator = communicator
  @desc = description
  @opts = opts
  @block = block

  setup
end

Class Method Details

.register(name) ⇒ Object

Register this class as authentication provider with name. The name must be the same as is used in CLI auth provider (if any) and on server side. All providers have to register.



28
29
30
# File 'lib/haveapi/client/authentication/base.rb', line 28

def register(name)
  HaveAPI::Client::Communicator.register_auth_method(name, Kernel.const_get(to_s))
end

Instance Method Details

#inspectObject



42
43
44
# File 'lib/haveapi/client/authentication/base.rb', line 42

def inspect
  "#<#{self.class.name} @opts=#{@opts.inspect}>"
end

#request_headersObject

Called for each request. Returns a hash of HTTP headers.



64
65
66
# File 'lib/haveapi/client/authentication/base.rb', line 64

def request_headers
  {}
end

#request_payloadObject

Called for each request. Returns a hash of parameters send in request body.



59
60
61
# File 'lib/haveapi/client/authentication/base.rb', line 59

def request_payload
  {}
end

#request_query_paramsObject

Called for each request. Returns a hash of query parameters.



53
54
55
# File 'lib/haveapi/client/authentication/base.rb', line 53

def request_query_params
  {}
end

#resourceObject

Return RestClient::Resource instance. This is mainly for HTTP basic auth.



50
# File 'lib/haveapi/client/authentication/base.rb', line 50

def resource; end

#saveObject

Returns a hash of auth provider attributes to be saved e.g. in a file to be used later, without the user providing credentials again. You may wish to save a username or password (not recommended), tokens or whatever authentication provider needs to authenticate user without his input.



73
74
75
# File 'lib/haveapi/client/authentication/base.rb', line 73

def save
  @opts
end

#setupObject

Called right after initialize. Use this method to initialize provider.



47
# File 'lib/haveapi/client/authentication/base.rb', line 47

def setup; end