Class: SoarSr::Services

Inherits:
Handler show all
Includes:
Jsender
Defined in:
lib/soar_sr/services.rb

Instance Attribute Summary

Attributes inherited from Handler

#registry

Instance Method Summary collapse

Methods inherited from Handler

#authorize, #initialize

Methods inherited from Validator

#authorized?, #contact?, #credentials?, #identifier?, #key_provided?, #length_at_least?, #meta?, #one_of, #present?, #provided?, #type?, #uri?, #wadl?

Constructor Details

This class inherits a constructor from SoarSr::Handler

Instance Method Details

#add_service_uri(service, uri) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/soar_sr/services.rb', line 38

def add_service_uri(service, uri)_{
  service = standardize(service)            
  authorize
  provided?(service, 'service') and provided?(uri, 'URI') and uri?(uri) and registered?(service, 'services')
  result = @uddi.add_service_uri(service, uri)
  authorized?(result) and identifier?(result, 'service')
  success
}end

#configure_meta_for_service(service, meta) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/soar_sr/services.rb', line 65

def configure_meta_for_service(service, meta)_{
  service = standardize(service)            
  authorize
  provided?(service, 'service') and provided?(meta, 'meta') and meta?(meta) and registered?(service, 'services')

  descriptions = merge_meta_with_service_descriptions(service, meta)
  result = update_service_descriptions(service, descriptions)

  authorized?(result) and identifier?(result, 'meta')
  success('meta updated', result['data'])
}end

#deregister_service(service) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/soar_sr/services.rb', line 19

def deregister_service(service)_{
  service = standardize(service)            
  authorize
  provided?(service, 'service') and registered?(service, 'services')
  result = @uddi.delete_service(service)
  authorized?(result) and identifier?(result, 'service')
  success('service deregistered')
}end

#find_services_and_service_components(pattern) ⇒ Object



97
98
99
100
101
102
103
# File 'lib/soar_sr/services.rb', line 97

def find_services_and_service_components(pattern)
  services = @uddi.find_services(pattern)['data']['services']
  service_components = @uddi.find_service_components(pattern)['data']['services']
  services ||= {}
  service_components ||= {}
  return services, service_components
end

#meta_for_service(service) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
# File 'lib/soar_sr/services.rb', line 77

def meta_for_service(service)
  service = standardize(service)            
  provided?(service, "service") and registered?(service, 'services')
    detail = @uddi.get_service(service)['data']
    if detail['description']
      detail['description'].each do |desc|
        return JSON.parse(CGI.unescape(desc)) if (description_is_meta?(desc))
      end
    end
    {}      
end

#register_service(service, description = nil) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/soar_sr/services.rb', line 10

def register_service(service, description = nil)_{
  service = standardize(service)            
  authorize
  key_provided?(service, 'name', 'service') and not_registered?(service['name'], 'services')
  result = @uddi.save_service(service['name'], extract_description_and_meta(service, description), service['definition'])
  authorized?(result) and identifier?(result, 'service')
  success('service registered')
}end

#remove_uri_from_service(service, uri) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/soar_sr/services.rb', line 56

def remove_uri_from_service(service, uri)_{
  service = standardize(service)            
  authorize
  provided?(service, 'service') and provided?(uri, 'URI') and uri?(uri) and registered?(service, 'services')
  result = @uddi.remove_service_uri(service, uri)
  authorized?(result) and identifier?(result, 'service')
  success
}end

#service_by_name(name) ⇒ Object



89
90
91
92
93
94
95
# File 'lib/soar_sr/services.rb', line 89

def service_by_name(name)_{
  service = standardize(service)            
  provided?(name, "service")
  services = search_for_service(name)
  return extract_service_by_name_from_services_list(services, name) if has_data?(services, 'services')
  raise FailureErrorError, 'failure finding service by name'
}end

#service_registered?(service) ⇒ Boolean

Returns:

  • (Boolean)


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

def service_registered?(service)_{
  service = standardize(service)            
  registered = false
  if present?(service)
    result = @uddi.find_services(service)      
    registered = find_matching_service(service, result) if has_data?(result, 'services')
  end
  success_data({'registered' => (registered ||= false)})
}end

#service_uris(service) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/soar_sr/services.rb', line 47

def service_uris(service)_{
  service = standardize(service)            
  authorize
  provided?(service, 'service') and registered?(service, 'services')
  result = @uddi.service_uris(service)
  authorized?(result) and identifier?(result, 'service')
  success_data(result['data'])
}end