Module: Evropochta::Services::ApiService

Includes:
Config
Included in:
Auth::JWT, Shared
Defined in:
lib/evropochta/services/api_service.rb

Constant Summary

Constants included from Config

Config::SERVICE_NUMBER, Config::USER_LOGIN_NAME, Config::USER_LOGIN_NAME_TYPE_ID, Config::USER_PASSWORD

Class Method Summary collapse

Class Method Details

.api_urlObject



12
13
14
# File 'lib/evropochta/services/api_service.rb', line 12

def api_url
  URI("#{ENV.fetch('API_URL', nil)}:#{ENV.fetch('API_PORT', 80)}/Json")
end

.do_request(opts) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/evropochta/services/api_service.rb', line 16

def do_request(opts)
  uri = api_url
  request = Net::HTTP::Post.new(uri)
  request["Content-Type"] = "application/json"
  request_body = opts[:post_body]

  request.body = request_body.to_json
  Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end
end

.handle_response(response) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/evropochta/services/api_service.rb', line 28

def handle_response(response)
  case response
  when Net::HTTPSuccess
    json_response = JSON.parse(response.body)
    json_response["Table"]
  else
    raise "Error fetching: #{response.message}"
  end
end