class DTK::Network::Client::Conn
Constants
- REST_PREFIX
- REST_VERSION
Attributes
codecommit[R]
connection_error[R]
Public Class Methods
new()
click to toggle source
# File lib/client/conn.rb, line 4 def initialize @cookies = {} @connection_error = nil @codecommit = nil login end
Public Instance Methods
connection_error?()
click to toggle source
# File lib/client/conn.rb, line 25 def connection_error? !connection_error.nil? end
delete(route, delete_body = {})
click to toggle source
# File lib/client/conn.rb, line 21 def delete(route, delete_body = {}) check_and_wrap_response { json_parse_if_needed(delete_raw(rest_url(route), delete_body)) } end
get(route, query_string_hash = {})
click to toggle source
# File lib/client/conn.rb, line 13 def get(route, query_string_hash = {}) check_and_wrap_response { json_parse_if_needed(get_raw(rest_url(route), query_string_hash)) } end
post(route, post_body = {})
click to toggle source
# File lib/client/conn.rb, line 17 def post(route, post_body = {}) check_and_wrap_response { json_parse_if_needed(post_raw(rest_url(route), post_body)) } end
Private Instance Methods
check_and_wrap_response(&rest_method_func)
click to toggle source
# File lib/client/conn.rb, line 46 def check_and_wrap_response(&rest_method_func) if @connection_error if conn_error = connection_error['errors'].first raise Error, conn_error else raise Error, "Unable to connect to dtk network, please check your credentials and try again!" end end response = rest_method_func.call if check_for_session_expiried(response) 3.times do sleep 2 print "Session expired: re-establishing session & re-trying request ..." @cookies = Session.re_initialize response = rest_method_func.call return response unless check_for_session_expiried(response) end end response end
check_for_session_expiried(response)
click to toggle source
# File lib/client/conn.rb, line 70 def check_for_session_expiried(response) if response && response.is_a?(Hash) if errors = response['errors'] if errors.is_a?(Array) error = errors.first return true if error.eql?('You need to sign in or sign up before continuing.') end end end false end
default_rest_opts()
click to toggle source
# File lib/client/conn.rb, line 104 def default_rest_opts @default_rest_opts ||= get_default_rest_opts end
delete_raw(url, delete_body, params = {})
click to toggle source
# File lib/client/conn.rb, line 124 def delete_raw(url, delete_body, params = {}) Response::RestClientWrapper.delete_raw(url, delete_body, default_rest_opts.merge(:cookies => @cookies).merge(params)) end
error_code?()
click to toggle source
# File lib/client/conn.rb, line 31 def error_code? connection_error['errors'].first['code'] rescue nil end
get_credentials()
click to toggle source
# File lib/client/conn.rb, line 100 def get_credentials @parsed_credentials ||= Config.get_credentials end
get_default_rest_opts()
click to toggle source
# File lib/client/conn.rb, line 108 def get_default_rest_opts { :timeout => 200, :open_timeout => 10, :verify_ssl => OpenSSL::SSL::VERIFY_PEER } end
get_raw(url, query_string_hash = {})
click to toggle source
# File lib/client/conn.rb, line 116 def get_raw(url, query_string_hash = {}) Response::RestClientWrapper.get_raw(url, query_string_hash, default_rest_opts.merge(:cookies => @cookies)) end
json_parse_if_needed(item)
click to toggle source
# File lib/client/conn.rb, line 128 def json_parse_if_needed(item) Response::RestClientWrapper.json_parse_if_needed(item) end
login()
click to toggle source
# File lib/client/conn.rb, line 83 def login response = post_raw rest_url('auth/sign_in'), get_credentials if response.kind_of?(::DTK::Common::Response) and !response.ok? @connection_error = response else @cookies = response.cookies set_codecommit_info(response) end end
logout()
click to toggle source
# File lib/client/conn.rb, line 93 def logout response = get_raw rest_url('auth/sign_out') # TODO: see if response can be nil raise Error, "Failed to logout, and terminate session!" unless response @cookies = nil end
post_raw(url, post_body, params = {})
click to toggle source
# File lib/client/conn.rb, line 120 def post_raw(url, post_body, params = {}) Response::RestClientWrapper.post_raw(url, post_body, default_rest_opts.merge(:cookies => @cookies).merge(params)) end
rest_url(route = nil)
click to toggle source
# File lib/client/conn.rb, line 38 def rest_url(route = nil) "#{rest_url_base}/#{REST_PREFIX}/#{route}" end
rest_url_base()
click to toggle source
# File lib/client/conn.rb, line 42 def rest_url_base @@rest_url_base ||= Config.get_endpoint end
set_codecommit_info(response)
click to toggle source
# File lib/client/conn.rb, line 132 def set_codecommit_info(response) json_response = json_parse_if_needed(response) # if codecommit_data = json_response.dig('data', 'meta', 'aws', 'codecommit') if codecommit_data = json_response['data']['meta']['aws']['codecommit'] @codecommit = codecommit_data end end