Class: EDSApi::ConnectionHandler

Inherits:
Connection show all
Defined in:
lib/eds-alpha.rb

Overview

Handles connections - retries failed connections, passes commands along

Instance Attribute Summary collapse

Attributes inherited from Connection

#auth_token, #password, #userid

Instance Method Summary collapse

Methods inherited from Connection

#create_session, #end_session, #ip_authenticate, #ip_init, #uid_authenticate, #uid_init

Constructor Details

#initialize(max_retries = 2) ⇒ ConnectionHandler

Returns a new instance of ConnectionHandler.



117
118
119
# File 'lib/eds-alpha.rb', line 117

def initialize(max_retries = 2)
	@max_retries = max_retries
end

Instance Attribute Details

#max_retriesObject

Returns the value of attribute max_retries.



115
116
117
# File 'lib/eds-alpha.rb', line 115

def max_retries
  @max_retries
end

#session_tokenObject

Returns the value of attribute session_token.



116
117
118
# File 'lib/eds-alpha.rb', line 116

def session_token
  @session_token
end

Instance Method Details

#info(session_token, auth_token, format = :xml) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/eds-alpha.rb', line 147

def info (session_token, auth_token, format= :xml)
   attempts = 0
   @auth_token = auth_token
   @session_token = session_token
	loop do
		result = JSON.parse(super(session_token, format)) # JSON Parse
	  if result.has_key?('ErrorNumber')
		  case result['ErrorNumber']
		  	when "108"
		  		@session_token = self.create_session
		  	when "104"
		  		self.uid_authenticate(:json)
		  end
		  if ++attempts == @max_retries
		  		abort "Bad response from server - error code #{result['ErrorNumber']}"
		  end
	  else
	  	return result
	  end
  end
end

#retrieve(dbid, an, session_token, auth_token, format = :xml) ⇒ Object



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/eds-alpha.rb', line 168

def retrieve(dbid, an, session_token, auth_token, format = :xml)
	attempts = 0
	@session_token = session_token
	@auth_token = auth_token
	loop do
		result = JSON.parse(super(dbid, an, session_token, format))
	  if result.has_key?('ErrorNumber')
		  case result['ErrorNumber']
		  	when "108"
		  		@session_token = self.create_session
		  	when "104"
		  		self.uid_authenticate(:json)
		  end
		  if ++attempts == @max_retries
		  		abort "Bad response from server - error code #{result['ErrorNumber']}"
		  end
	  else
	  	return result
	  end
  end
end

#search(options, session_token, auth_token, format = :xml) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/eds-alpha.rb', line 126

def search(options, session_token, auth_token, format = :xml)
	attempts = 0
	@session_token = session_token
	@auth_token = auth_token
	loop do
		result = JSON.parse(super(options, session_token, format))
	  if result.has_key?('ErrorNumber')
		  case result['ErrorNumber']
		  	when "108"
		  		@session_token = self.create_session
		  	when "104"
		  		self.uid_authenticate(:json)
		  end
		  if ++attempts == @max_retries
		  		abort "Bad response from server - error code #{result['ErrorNumber']}"
		  end
	  else
	  	return result
	  end
	end
end

#show_auth_tokenObject



123
124
125
# File 'lib/eds-alpha.rb', line 123

def show_auth_token
  return @auth_token
end

#show_session_tokenObject



120
121
122
# File 'lib/eds-alpha.rb', line 120

def show_session_token
  return @session_token
end