mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-17 04:11:24 +00:00
70 lines
2.5 KiB
Ruby
70 lines
2.5 KiB
Ruby
class MigrateAgentsToLiquidTemplating < ActiveRecord::Migration
|
|
class Agent < ActiveRecord::Base
|
|
include JSONSerializedField
|
|
json_serialize :options, :memory
|
|
end
|
|
class Agents::HipchatAgent < Agent
|
|
end
|
|
class Agents::EventFormattingAgent < Agent
|
|
end
|
|
class Agents::PushbulletAgent < Agent
|
|
end
|
|
class Agents::JabberAgent < Agent
|
|
end
|
|
class Agents::DataOutputAgent < Agent
|
|
end
|
|
class Agents::TranslationAgent < Agent
|
|
end
|
|
class Agents::TwitterPublishAgent < Agent
|
|
end
|
|
class Agents::TriggerAgent < Agent
|
|
end
|
|
class Agents::PeakDetectorAgent < Agent
|
|
end
|
|
class Agents::HumanTaskAgent < Agent
|
|
end
|
|
|
|
def up
|
|
Agent.where(:type => 'Agents::HipchatAgent').each do |agent|
|
|
LiquidMigrator.convert_all_agent_options(agent)
|
|
end
|
|
Agent.where(:type => 'Agents::EventFormattingAgent').each do |agent|
|
|
agent.options['instructions'] = LiquidMigrator.convert_hash(agent.options['instructions'], {:merge_path_attributes => true, :leading_dollarsign_is_jsonpath => true})
|
|
agent.save
|
|
end
|
|
Agent.where(:type => 'Agents::PushbulletAgent').each do |agent|
|
|
LiquidMigrator.convert_all_agent_options(agent)
|
|
end
|
|
Agent.where(:type => 'Agents::JabberAgent').each do |agent|
|
|
LiquidMigrator.convert_all_agent_options(agent)
|
|
end
|
|
Agent.where(:type => 'Agents::DataOutputAgent').each do |agent|
|
|
LiquidMigrator.convert_all_agent_options(agent)
|
|
end
|
|
Agent.where(:type => 'Agents::TranslationAgent').each do |agent|
|
|
agent.options['content'] = LiquidMigrator.convert_hash(agent.options['content'], {:merge_path_attributes => true, :leading_dollarsign_is_jsonpath => true})
|
|
agent.save
|
|
end
|
|
Agent.where(:type => 'Agents::TwitterPublishAgent').each do |agent|
|
|
if (message = agent.options.delete('message_path')).present?
|
|
agent.options['message'] = "{{#{message}}}"
|
|
agent.save
|
|
end
|
|
end
|
|
Agent.where(:type => 'Agents::TriggerAgent').each do |agent|
|
|
agent.options['message'] = LiquidMigrator.convert_make_message(agent.options['message'])
|
|
agent.save
|
|
end
|
|
Agent.where(:type => 'Agents::PeakDetectorAgent').each do |agent|
|
|
agent.options['message'] = LiquidMigrator.convert_make_message(agent.options['message'])
|
|
agent.save
|
|
end
|
|
Agent.where(:type => 'Agents::HumanTaskAgent').each do |agent|
|
|
LiquidMigrator.convert_all_agent_options(agent)
|
|
end
|
|
end
|
|
|
|
def down
|
|
raise ActiveRecord::IrreversibleMigration, "Cannot revert migration to Liquid templating"
|
|
end
|
|
end
|