in lambda/python/rs_integration_function/callback_sources/builder.py [0:0]
def get_callback_class_for_event(cls, event):
max_score = 0
best_class = None
for source_class in cls.sources:
amount_matching_fields = sum(
[1 if field in event else 0 for field in source_class.get_callback_fieldnames()]
)
if amount_matching_fields != len(source_class.get_callback_fieldnames()):
# No full match for callback
continue
if amount_matching_fields > max_score:
max_score = amount_matching_fields
best_class = source_class
if max_score == 0:
best_class = NoCallback
return best_class