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.



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

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.



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

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

Instance Method Details

#load(hash) ⇒ Object

Load auth provider attributes from previous #save call.



77
78
79
# File 'lib/haveapi/client/authentication/base.rb', line 77

def load(hash)
  @opts = hash
end

#request_headersObject

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



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

def request_headers
  {}
end

#request_payloadObject

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



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

def request_payload
  {}
end

#request_query_paramsObject

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



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

def request_query_params
  {}
end

#resourceObject

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



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

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.



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

def save
  @opts
end

#setupObject

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



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

def setup

end