def perform(organization, entities_hash, opts = {})
      return unless organization.sync_enabled && organization.oauth_uid

      connec_client = Maestrano::Connector::Rails::ConnecHelper.get_client(organization)
      external_client = Maestrano::Connector::Rails::External.get_client(organization)
      last_synchronization_date = organization.last_synchronization_date

      entities_hash.each do |external_entity_name, entities|
        if entity_instance_hash = find_entity_instance(external_entity_name, organization, connec_client, external_client, opts)
          next unless organization.synchronized_entities[entity_instance_hash[:name].to_sym][:can_push_to_connec]

          entity_instance = entity_instance_hash[:instance]

          entity_instance.before_sync(last_synchronization_date)
          # Build expected input for consolidate_and_map_data
          mapped_entities = if entity_instance_hash[:is_complex]
                              entity_instance.consolidate_and_map_data(ComplexEntity.build_empty_hash(entity_instance.class.connec_entities_names), ComplexEntity.build_hash_with_entities(entity_instance.class.external_entities_names, external_entity_name, ->(name) { name }, entities))
                            else
                              entity_instance.consolidate_and_map_data([], entities)
                            end
          entity_instance.push_entities_to_connec(mapped_entities[:external_entities])

          entity_instance.after_sync(last_synchronization_date)
        else
          Maestrano::Connector::Rails::ConnectorLogger.log('warn', organization, "Called push to connec job with unknow entity: #{external_entity_name}")
        end
      end
    end
def perform(organization, entities_hash, opts = {})
      return unless organization.sync_enabled && organization.oauth_uid

      connec_client = Maestrano::Connector::Rails::ConnecHelper.get_client(organization)
      external_client = Maestrano::Connector::Rails::External.get_client(organization)
      last_synchronization_date = organization.last_synchronization_date

      entities_hash.each do |external_entity_name, entities|
        if entity_instance_hash = find_entity_instance(external_entity_name, organization, connec_client, external_client, opts)
          next unless organization.synchronized_entities[entity_instance_hash[:name].to_sym][:can_push_to_connec]

          entity_instance = entity_instance_hash[:instance]

          entity_instance.before_sync(last_synchronization_date)
          # Build expected input for consolidate_and_map_data
          mapped_entities = if entity_instance_hash[:is_complex]
                              entity_instance.consolidate_and_map_data(ComplexEntity.build_empty_hash(entity_instance.class.connec_entities_names), ComplexEntity.build_hash_with_entities(entity_instance.class.external_entities_names, external_entity_name, ->(name) { name }, entities))
                            else
                              entity_instance.consolidate_and_map_data([], entities)
                            end
          entity_instance.push_entities_to_connec(mapped_entities[:external_entities])

          entity_instance.after_sync(last_synchronization_date)
        else
          Maestrano::Connector::Rails::ConnectorLogger.log('warn', organization, "Called push to connec job with unknow entity: #{external_entity_name}")
        end
      end
    end
expected hash: {"external_entity_name1" => [entity1, entity2], "external_entity_name2" => []}