class SoarSr::Handler

Attributes

registry[RW]

Public Class Methods

new(urns, uddi, credentials, registry) click to toggle source
# File lib/soar_sr/handler.rb, line 10
def initialize(urns, uddi, credentials, registry)
    @urns = urns
    @uddi = uddi
    @credentials = credentials
  @registry = registry
    validate
end

Public Instance Methods

authorize() click to toggle source
# File lib/soar_sr/handler.rb, line 18
def authorize
  @uddi.broker.authenticate(@credentials['username'], @credentials['password'])
end

Protected Instance Methods

_() { || ... } click to toggle source
# File lib/soar_sr/handler.rb, line 24
def _(&block)
    yield
rescue => ex
    # byebug
  return fail(ex.message) if ex.is_a? ValidationError
  return error('request could not be completed')            
end
any_registered?(domain_perspective) click to toggle source
# File lib/soar_sr/handler.rb, line 56
def any_registered?(domain_perspective)
  raise ValidationError, "unknown domain perspective provided" if (not type_registered?(domain_perspective, 'domains')) and (not type_registered?(domain_perspective, 'teams'))
  true
end
compile_domain_id(type, element) click to toggle source
# File lib/soar_sr/handler.rb, line 70
def compile_domain_id(type, element)
  element = standardize(element)
  return element if element.include?(@urns[type])
  "#{@urns[type]}#{element}"
end
description_is_meta?(meta) click to toggle source
# File lib/soar_sr/handler.rb, line 32
def description_is_meta?(meta)
  JSON.parse(CGI.unescape(meta))
  true
rescue => ex
  false
end
extract_domain_name(type, element) click to toggle source
# File lib/soar_sr/handler.rb, line 76
def extract_domain_name(type, element)
  element = standardize(element)
  element.gsub("#{@urns[type]}", "")
end
is_registered?(result) click to toggle source
# File lib/soar_sr/handler.rb, line 39
def is_registered?(result)
  has_data?(result, 'registered') and result['data']['registered']
end
merge_meta_with_descriptions(detail, meta) click to toggle source
# File lib/soar_sr/handler.rb, line 87
def merge_meta_with_descriptions(detail, meta)
  descriptions = []
  detail['description'] ||= {}
  detail['description'].each do |desc|
    descriptions << desc if not description_is_meta?(desc)
  end
  descriptions << CGI.escape(meta.to_json)
  descriptions
end
not_registered?(element, type) click to toggle source
# File lib/soar_sr/handler.rb, line 51
def not_registered?(element, type)
  raise ValidationError, "#{one_of(type)} already exists" if type_registered?(element, type)
  true
end
registered?(element, type) click to toggle source
# File lib/soar_sr/handler.rb, line 61
def registered?(element, type)
  raise ValidationError, "unknown #{one_of(type)} provided" if not type_registered?(element, type)
  true
end
standardize(name) click to toggle source
# File lib/soar_sr/handler.rb, line 81
def standardize(name)
  return standardize_dictionary(name) if name.is_a?(Hash)
  return standardized = name.to_s.downcase if not name.nil?
  nil
end
type_registered?(element, type) click to toggle source
# File lib/soar_sr/handler.rb, line 43
def type_registered?(element, type)
  return is_registered?(@registry.domain_perspectives.domain_perspective_registered?(element)) if (type == 'domains')
  return is_registered?(@registry.service_components.service_component_registered?(element)) if (type == 'service-components')
  return is_registered?(@registry.services.service_registered?(element)) if (type == 'services')
  return is_registered?(@registry.teams.team_registered?(element)) if (type == 'teams')
  false
end
validate() click to toggle source
# File lib/soar_sr/handler.rb, line 66
def validate
    provided?(@urns, "urns") and provided?(@uddi, "UDDI provider") and credentials?(@credentials)
end

Private Instance Methods

standardize_dictionary(dictionary) click to toggle source
# File lib/soar_sr/handler.rb, line 99
def standardize_dictionary(dictionary)
  value = standardize(dictionary['name'])
  standardized = dictionary
  standardized['name'] = value
  standardized
end