Class: DaVinciCRDTestKit::CDSServicesDiscoveryHandler
- Inherits:
-
Object
- Object
- DaVinciCRDTestKit::CDSServicesDiscoveryHandler
- Defined in:
- lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb
Class Method Summary collapse
- .call ⇒ Object
- .cds_services(version = 'v2.0.1', prefetch_subset: false) ⇒ Object
- .cds_services_array ⇒ Object
Instance Method Summary collapse
Class Method Details
.call ⇒ Object
3 4 5 |
# File 'lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb', line 3 def self.call(...) new.call(...) end |
.cds_services(version = 'v2.0.1', prefetch_subset: false) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb', line 7 def self.cds_services(version = 'v2.0.1', prefetch_subset: false) key = "#{version}_#{prefetch_subset}" cds_services_array[key] ||= begin filename = if prefetch_subset "cds-services-prefetch-subset-#{version.gsub('.', '')}.json" else "cds-services-#{version.gsub('.', '')}.json" end File.read(File.join(__dir__, '..', version, filename)) end end |
.cds_services_array ⇒ Object
19 20 21 |
# File 'lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb', line 19 def self.cds_services_array @cds_services_array ||= {} end |
Instance Method Details
#call(env) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb', line 23 def call(env) path_parts = env['PATH_INFO'].split('/') # /custom/<suite>/[prefetch-subset/]cds-services prefetch_subset = path_parts.include?('prefetch-subset') suite = path_parts.find { |p| p.start_with?('crd_client_') } || path_parts[-2] version_no_dots = suite.split('_')[2].presence || 'v201' # crd_client_<version> version = version_no_dots.sub(/\A(v\d)(\d)(\d)\z/, '\1.\2.\3') [200, { 'Content-Type' => 'application/json', 'Access-Control-Allow-Origin' => '*' }, [self.class.cds_services(version, prefetch_subset:)]] end |