Class: Connectors::Base::Connector
- Inherits:
-
Object
- Object
- Connectors::Base::Connector
show all
- Defined in:
- lib/connectors/base/connector.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(configuration: {}, job_description: nil) ⇒ Connector
Returns a new instance of Connector.
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/connectors/base/connector.rb', line 83
def initialize(configuration: {}, job_description: nil)
error_monitor = Utility::ErrorMonitor.new
@tolerable_error_helper = Connectors::TolerableErrorHelper.new(error_monitor)
@configuration = job_description&.configuration&.dup || configuration&.dup || {}
@job_description = job_description&.dup
filter = Utility::Filtering.(@job_description&.filtering)
filter = Core::Filtering::Transform::FilterTransformerFacade.new(filter, self.class.filter_transformers).transform
@rules = filter[:rules] || []
@advanced_filter_config = filter[:advanced_snippet]&.with_indifferent_access || {}
end
|
Instance Attribute Details
#advanced_filter_config ⇒ Object
Returns the value of attribute advanced_filter_config.
81
82
83
|
# File 'lib/connectors/base/connector.rb', line 81
def advanced_filter_config
@advanced_filter_config
end
|
#rules ⇒ Object
Returns the value of attribute rules.
81
82
83
|
# File 'lib/connectors/base/connector.rb', line 81
def rules
@rules
end
|
Class Method Details
.advanced_snippet_validators ⇒ Object
.configurable_fields ⇒ Object
37
38
39
|
# File 'lib/connectors/base/connector.rb', line 37
def self.configurable_fields
{}
end
|
.configurable_fields_indifferent_access ⇒ Object
Used as a framework util method, don’t override
33
34
35
|
# File 'lib/connectors/base/connector.rb', line 33
def self.configurable_fields_indifferent_access
configurable_fields.with_indifferent_access
end
|
.display_name ⇒ Object
28
29
30
|
# File 'lib/connectors/base/connector.rb', line 28
def self.display_name
raise 'Not implemented for this connector'
end
|
.kibana_features ⇒ Object
45
46
47
48
49
50
|
# File 'lib/connectors/base/connector.rb', line 45
def self.kibana_features
[
{ :feature => :sync_rules, :subfeature => :basic, :enabled => true },
{ :feature => :sync_rules, :subfeature => :advanced, :enabled => true }
]
end
|
.service_type ⇒ Object
41
42
43
|
# File 'lib/connectors/base/connector.rb', line 41
def self.service_type
raise 'Not implemented for this connector'
end
|
.simple_rules_validators ⇒ Object
.validate_filtering(filtering = {}) ⇒ Object
72
73
74
75
76
77
78
79
|
# File 'lib/connectors/base/connector.rb', line 72
def self.validate_filtering(filtering = {})
filter = Utility::Filtering.(filtering)
filter_validator = Core::Filtering::FilterValidator.new(snippet_validator_classes: advanced_snippet_validators,
rules_validator_classes: simple_rules_validators,
rules_pre_processing_active: Utility::Filtering.rule_pre_processing_active?(filter))
filter_validator.is_filter_valid(filter)
end
|
Instance Method Details
#do_health_check ⇒ Object
104
105
106
|
# File 'lib/connectors/base/connector.rb', line 104
def do_health_check
raise 'Not implemented for this connector'
end
|
#do_health_check! ⇒ Object
#is_healthy? ⇒ Boolean
115
116
117
118
119
120
121
122
|
# File 'lib/connectors/base/connector.rb', line 115
def is_healthy?
do_health_check
true
rescue StandardError => e
Utility::ExceptionTracking.log_exception(e, "Connector for service #{self.class.service_type} failed the health check for 3rd-party service.")
false
end
|
124
125
126
|
# File 'lib/connectors/base/connector.rb', line 124
def metadata
{}
end
|
#yield_documents ⇒ Object
98
|
# File 'lib/connectors/base/connector.rb', line 98
def yield_documents; end
|
#yield_with_handling_tolerable_errors(identifier: nil, &block) ⇒ Object
100
101
102
|
# File 'lib/connectors/base/connector.rb', line 100
def yield_with_handling_tolerable_errors(identifier: nil, &block)
@tolerable_error_helper.yield_single_document(identifier: identifier, &block)
end
|