a7c947aeae
- endpoints to clone and update automation rules fixes: #3740
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
class Api::V1::Accounts::AutomationRulesController < Api::V1::Accounts::BaseController
|
|
before_action :check_authorization
|
|
before_action :fetch_automation_rule, only: [:show, :update, :destroy, :clone]
|
|
|
|
def index
|
|
@automation_rules = Current.account.automation_rules.active
|
|
end
|
|
|
|
def create
|
|
@automation_rule = Current.account.automation_rules.create(automation_rules_permit)
|
|
end
|
|
|
|
def show; end
|
|
|
|
def update
|
|
@automation_rule.update(automation_rules_permit)
|
|
end
|
|
|
|
def destroy
|
|
@automation_rule.destroy!
|
|
head :ok
|
|
end
|
|
|
|
def clone
|
|
automation_rule = Current.account.automation_rules.find_by(id: params[:automation_rule_id])
|
|
new_rule = automation_rule.dup
|
|
new_rule.save
|
|
@automation_rule = new_rule
|
|
end
|
|
|
|
private
|
|
|
|
def automation_rules_permit
|
|
params.permit(
|
|
:name, :description, :event_name, :account_id,
|
|
conditions: [:attribute_key, :filter_operator, :query_operator, { values: [] }],
|
|
actions: [:action_name, { action_params: [] }]
|
|
)
|
|
end
|
|
|
|
def fetch_automation_rule
|
|
@automation_rule = Current.account.automation_rules.find_by(id: params[:id])
|
|
end
|
|
end
|