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?
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
|
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
|
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 (services, name) if has_data?(services, 'services')
raise FailureErrorError, 'failure finding service by name'
}end
|
#service_registered?(service) ⇒ 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
|