Class: Ievkit::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ievkit/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(referential) ⇒ Client

Returns a new instance of Client.



5
6
7
8
9
10
# File 'lib/ievkit/client.rb', line 5

def initialize(referential)
  @payload = {}
  @referential = referential
  @iev_url_prefix = init_iev_url_prefix
  @iev_url_jobs = init_iev_url_jobs
end

Instance Attribute Details

#iev_url_jobsObject (readonly)

Returns the value of attribute iev_url_jobs.



3
4
5
# File 'lib/ievkit/client.rb', line 3

def iev_url_jobs
  @iev_url_jobs
end

#iev_url_prefixObject (readonly)

Returns the value of attribute iev_url_prefix.



3
4
5
# File 'lib/ievkit/client.rb', line 3

def iev_url_prefix
  @iev_url_prefix
end

#iev_url_suffixObject (readonly)

Returns the value of attribute iev_url_suffix.



3
4
5
# File 'lib/ievkit/client.rb', line 3

def iev_url_suffix
  @iev_url_suffix
end

#referentialObject (readonly)

Returns the value of attribute referential.



3
4
5
# File 'lib/ievkit/client.rb', line 3

def referential
  @referential
end

Instance Method Details

#init_connection(url) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/ievkit/client.rb', line 36

def init_connection(url)
  @connection = Faraday.new(url: url) do |conn|
    conn.request :multipart if @payload.any?
    conn.headers = headers
    conn.response :json, content_type: 'application/json'
    conn.adapter Faraday.default_adapter
  end
end

#init_files(options) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/ievkit/client.rb', line 45

def init_files(options)
  return unless options
  iev_file = options[:iev_file]
  @payload[:file[0]] = Faraday::UploadIO.new(options[:iev_params], 'application/json', 'parameters.json')
  return unless iev_file
  filename = File.basename(iev_file)
  @payload[:file[1]] = Faraday::UploadIO.new(iev_file, 'application/zip', filename)
end

#prepare_post_request(type, options) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ievkit/client.rb', line 12

def prepare_post_request(type, options)
  init_files(options)
  @iev_url_suffix = init_iev_url_suffix(type)
  init_connection(iev_url_prefix)
  begin
    response = @connection.post(@iev_url_suffix, @payload)
    parse_response(response)
  rescue => e
    Ievkit::Log.logger.fatal("Unable to contact IEV server: #{e.message}")
    return false
  end
end

#prepare_request(url, http_method) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/ievkit/client.rb', line 25

def prepare_request(url, http_method)
  init_connection(url)
  begin
    response = @connection.send(http_method)
    parse_response(response)
  rescue => e
    Ievkit::Log.logger.fatal("Unable to contact IEV server: #{e.message}")
    return false
  end
end