Class: Avmtrf1::RestProvider::Instance

Inherits:
Object
  • Object
show all
Includes:
EacRubyUtils::Console::Speaker
Defined in:
lib/avmtrf1/rest_provider/instance.rb

Overview

Abstract methods

* parse_issue_id(global_issue_id)
* self.build_service_url(service_url_suffix)
* self.issue_get_url_suffix(provider_issue_id)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root_url, username, password) ⇒ Instance

Returns a new instance of Instance.



19
20
21
22
23
# File 'lib/avmtrf1/rest_provider/instance.rb', line 19

def initialize(root_url, username, password)
  @root_url = root_url
  @username = username
  @password = password
end

Instance Attribute Details

#passwordObject (readonly)

Returns the value of attribute password.



17
18
19
# File 'lib/avmtrf1/rest_provider/instance.rb', line 17

def password
  @password
end

#root_urlObject (readonly)

Returns the value of attribute root_url.



17
18
19
# File 'lib/avmtrf1/rest_provider/instance.rb', line 17

def root_url
  @root_url
end

#usernameObject (readonly)

Returns the value of attribute username.



17
18
19
# File 'lib/avmtrf1/rest_provider/instance.rb', line 17

def username
  @username
end

Instance Method Details

#find_issue(global_issue_id) ⇒ Object



25
26
27
28
# File 'lib/avmtrf1/rest_provider/instance.rb', line 25

def find_issue(global_issue_id)
  parsed = self.class.parse_issue_id(global_issue_id)
  parsed.present? ? issue(parsed.provider_issue_id) : nil
end

#issue(provider_issue_id) ⇒ Object



30
31
32
# File 'lib/avmtrf1/rest_provider/instance.rb', line 30

def issue(provider_issue_id)
  issue_class.new(self, request(issue_get_url_suffix(provider_issue_id)))
end

#issue_classObject



45
46
47
# File 'lib/avmtrf1/rest_provider/instance.rb', line 45

def issue_class
  "#{self.class.name.deconstantize}::Entities::Issue".constantize
end

#request(service_url_suffix) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/avmtrf1/rest_provider/instance.rb', line 34

def request(service_url_suffix)
  url = build_service_url(service_url_suffix)
  infov 'URL', url
  c = ::Curl::Easy.new(url)
  c.http_auth_types = :basic
  c.username = username
  c.password = password
  c.headers['Accept'] = 'application/json'
  curl_perform(c)
end