Class: SyncCommandConfigurationsForCommunityJob

Inherits:
Object
  • Object
show all
Includes:
SuckerPunch::Job
Defined in:
lib/esm/jobs/sync_command_configurations_for_community_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(community_id, configurations) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/esm/jobs/sync_command_configurations_for_community_job.rb', line 7

def perform(community_id, configurations)
  ESM::Database.with_connection do
    # Get all existing configurations by command_name
    existing_configuration_names = ESM::CommandConfiguration.where(community_id: community_id).pluck(:command_name)

    # Remove any existing configurations
    configurations = configurations.reject { |config| existing_configuration_names.include?(config[:command_name]) }

    # Nothing to insert
    return if configurations.blank?

    # Merge in the ID for this community for mass inserts
    configurations = configurations.map { |config| config.merge(community_id: community_id) }

    # Mass insert
    ESM::CommandConfiguration.import(configurations)
  end
end