Class: SoarSr::Services
Constant Summary
collapse
- ALL_SERVICES =
nil
Instance Attribute Summary
#max_threads
Attributes inherited from Handler
#registry
Instance Method Summary
collapse
#initialize
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?
Instance Method Details
#add_service_uri(service, uri) ⇒ Object
39
40
41
42
43
44
45
46
|
# File 'lib/soar_sr/services.rb', line 39
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
|
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/soar_sr/services.rb', line 66
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
20
21
22
23
24
25
26
27
|
# File 'lib/soar_sr/services.rb', line 20
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
98
99
100
101
102
103
104
|
# File 'lib/soar_sr/services.rb', line 98
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
|
#list_services ⇒ Object
106
107
108
109
110
|
# File 'lib/soar_sr/services.rb', line 106
def list_services
found = find_service_by_pattern(ALL_SERVICES)
success_data({'services' => found})
end
|
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/soar_sr/services.rb', line 78
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
11
12
13
14
15
16
17
18
|
# File 'lib/soar_sr/services.rb', line 11
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
57
58
59
60
61
62
63
64
|
# File 'lib/soar_sr/services.rb', line 57
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
90
91
92
93
94
95
96
|
# File 'lib/soar_sr/services.rb', line 90
def service_by_name(name)_{
name = standardize(name)
provided?(name, "service")
services = find_service(name)
return (services, name) if has_data?(services, 'services')
raise FailureErrorError, 'failure finding service by name'
}end
|
#service_registered?(service) ⇒ Boolean
29
30
31
32
33
34
35
36
37
|
# File 'lib/soar_sr/services.rb', line 29
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
48
49
50
51
52
53
54
55
|
# File 'lib/soar_sr/services.rb', line 48
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
|