10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'app/workflows/jumbotron/workflows/execute_discovery_workflow.rb', line 10
def call(adapter_id:, discovery_id:)
resolved = Services::Adapters::ResolveDiscovery.call(
adapter_id: adapter_id,
discovery_id: discovery_id
)
return map_resolution_failure(resolved) unless resolved.success?
adapter = resolved.data[:adapter]
definition = resolved.data[:definition]
ensured = Services::Adapters::EnsureLeague.call(adapter: adapter)
return map_resolution_failure(ensured) unless ensured.success?
league = ensured.data[:league]
return cooldown_deferred(adapter) if adapter.provider_cooling_down?
expanded = adapter.scopes_for_discovery(definition)
return map_expand_failure(adapter, expanded) unless expanded.success?
scopes = Array(expanded.output).map do |acquisition|
{ endpoint: definition.endpoint, acquisition: acquisition }
end
return empty_scopes_failure(adapter, definition) if scopes.empty?
run_scopes(adapter, league, scopes, discovery_id)
end
|