class Soap4juddi::Connector
Attributes
auth_token[RW]
soap_xml[R]
uri[R]
Public Class Methods
new()
click to toggle source
# File lib/soap4juddi/connector.rb, line 12 def initialize @soap_xml = Soap4juddi::XML.new end
Public Instance Methods
authenticate(auth_user, auth_password)
click to toggle source
# File lib/soap4juddi/connector.rb, line 21 def authenticate(auth_user, auth_password) @auth_user = auth_user @auth_password =auth_password end
connection(base_uri, service, action)
click to toggle source
# File lib/soap4juddi/connector.rb, line 48 def connection(base_uri, service, action) validate_connection_parameters(base_uri, service, action) build_post_request(base_uri, service, action) end
execute(req, &block)
click to toggle source
# File lib/soap4juddi/connector.rb, line 40 def execute(req, &block) validate_destination(req) res = Net::HTTP.start(@uri.hostname, @uri.port) do |http| http.request(req) end jsend_result(res, block) end
extract_auth_token(body)
click to toggle source
# File lib/soap4juddi/connector.rb, line 53 def extract_auth_token(body) (body.split('authtoken:')[1]).split('<')[0] end
has_credentials?()
click to toggle source
# File lib/soap4juddi/connector.rb, line 16 def has_credentials? return true if @auth_user or @auth_password false end
request_soap(base_uri, version, service, request, attr = nil, &block)
click to toggle source
# File lib/soap4juddi/connector.rb, line 32 def request_soap(base_uri, version, service, request, attr = nil, &block) req = connection(base_uri, version, service) req.body = @soap_xml.soap_envelope(request, service, attr) execute(req) do |res| block.call(res) end end
Private Instance Methods
build_post_request(base_uri, service, action)
click to toggle source
# File lib/soap4juddi/connector.rb, line 100 def build_post_request(base_uri, service, action) req = Net::HTTP::Post.new(build_uri(base_uri, service)) req.content_type = @soap_xml.content_type req['SOAPAction'] = action req end
build_uri(base_uri, service)
click to toggle source
# File lib/soap4juddi/connector.rb, line 88 def build_uri(base_uri, service) @uri = URI("#{base_uri}/juddiv3/services/#{service}") @uri.request_uri end
jsend_result(res, block)
click to toggle source
# File lib/soap4juddi/connector.rb, line 73 def jsend_result(res, block) case res when Net::HTTPSuccess return soap_success(res, block) else return fail(res.body) end end
request_auth_token(base_uri)
click to toggle source
# File lib/soap4juddi/connector.rb, line 59 def request_auth_token(base_uri) result = execute(build_authorization_request(base_uri)) do |res| @auth_token = extract_auth_token(res.body) end @auth_token end
soap_success(res, block)
click to toggle source
# File lib/soap4juddi/connector.rb, line 82 def soap_success(res, block) result = block.call(res) if block return success_data(result) if result return success end
validate_base_uri(base_uri)
click to toggle source
# File lib/soap4juddi/connector.rb, line 112 def validate_base_uri(base_uri) raise Soap4juddi::InvalidDestinationError.new('no base URI provided') if base_uri.nil? true end
validate_connection_parameters(base_uri, service, action)
click to toggle source
# File lib/soap4juddi/connector.rb, line 93 def validate_connection_parameters(base_uri, service, action) validate_base_uri(base_uri) raise Soap4juddi::InvalidDestinationError.new('no service provided') if service.nil? raise Soap4juddi::InvalidDestinationError.new('no action provided') if action.nil? true end
validate_destination(req)
click to toggle source
# File lib/soap4juddi/connector.rb, line 107 def validate_destination(req) raise Soap4juddi::InvalidRequestError.new('no request provided') if req.nil? true end