Chatwoot/app/controllers/api/v1/accounts/automation_rules_controller.rb

46 lines
1.2 KiB
Ruby
Raw Normal View History

2022-01-10 07:11:59 +00:00
class Api::V1::Accounts::AutomationRulesController < Api::V1::Accounts::BaseController
before_action :check_authorization
before_action :fetch_automation_rule, only: [:show, :update, :destroy, :clone]
2022-01-10 07:11:59 +00:00
def index
2022-03-01 08:44:23 +00:00
@automation_rules = Current.account.automation_rules
2022-01-10 07:11:59 +00:00
end
def create
@automation_rule = Current.account.automation_rules.create(automation_rules_permit)
@automation_rule.update(actions: params[:actions])
2022-01-10 07:11:59 +00:00
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
2022-01-10 07:11:59 +00:00
private
def automation_rules_permit
params.permit(
2022-03-01 08:44:23 +00:00
:name, :description, :event_name, :account_id, :active,
2022-01-10 07:11:59 +00:00
conditions: [:attribute_key, :filter_operator, :query_operator, { values: [] }],
2022-03-29 07:57:16 +00:00
actions: [:action_name, { action_params: [] }]
2022-01-10 07:11:59 +00:00
)
end
def fetch_automation_rule
@automation_rule = Current.account.automation_rules.find_by(id: params[:id])
end
2022-01-10 07:11:59 +00:00
end