summaryrefslogtreecommitdiff
path: root/app/controllers/concerns/integrations/hooks_execution.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/concerns/integrations/hooks_execution.rb')
-rw-r--r--app/controllers/concerns/integrations/hooks_execution.rb95
1 files changed, 0 insertions, 95 deletions
diff --git a/app/controllers/concerns/integrations/hooks_execution.rb b/app/controllers/concerns/integrations/hooks_execution.rb
deleted file mode 100644
index fb26840168f..00000000000
--- a/app/controllers/concerns/integrations/hooks_execution.rb
+++ /dev/null
@@ -1,95 +0,0 @@
-# frozen_string_literal: true
-
-module Integrations::HooksExecution
- extend ActiveSupport::Concern
-
- included do
- attr_writer :hooks, :hook
- end
-
- def index
- self.hooks = relation.select(&:persisted?)
- self.hook = relation.new
- end
-
- def create
- self.hook = relation.new(hook_params)
- hook.save
-
- unless hook.valid?
- self.hooks = relation.select(&:persisted?)
- flash[:alert] = hook.errors.full_messages.join.html_safe
- end
-
- redirect_to action: :index
- end
-
- def update
- if hook.update(hook_params)
- flash[:notice] = _('Hook was successfully updated.')
- redirect_to action: :index
- else
- render 'edit'
- end
- end
-
- def destroy
- destroy_hook(hook)
-
- redirect_to action: :index, status: :found
- end
-
- def edit
- redirect_to(action: :index) unless hook
- end
-
- private
-
- def hook_params
- permitted = hook_param_names + trigger_values
- permitted << { url_variables: [:key, :value] }
-
- ps = params.require(:hook).permit(*permitted).to_h
-
- ps[:url_variables] = ps[:url_variables].to_h { [_1[:key], _1[:value].presence] } if ps.key?(:url_variables)
-
- if action_name == 'update' && ps.key?(:url_variables)
- supplied = ps[:url_variables]
- ps[:url_variables] = hook.url_variables.merge(supplied).compact
- end
-
- ps
- end
-
- def hook_param_names
- %i[enable_ssl_verification token url push_events_branch_filter]
- end
-
- def destroy_hook(hook)
- result = WebHooks::DestroyService.new(current_user).execute(hook)
-
- if result[:status] == :success
- flash[:notice] =
- if result[:async]
- _("%{hook_type} was scheduled for deletion") % { hook_type: hook.model_name.human }
- else
- _("%{hook_type} was deleted") % { hook_type: hook.model_name.human }
- end
- else
- flash[:alert] = result[:message]
- end
- end
-
- def set_hook_execution_notice(result)
- http_status = result[:http_status]
- message = result[:message]
-
- if http_status && http_status >= 200 && http_status < 400
- flash[:notice] = "Hook executed successfully: HTTP #{http_status}"
- elsif http_status
- flash[:alert] = "Hook executed successfully but returned HTTP #{http_status} #{message}"
- else
- flash[:alert] = "Hook execution failed: #{message}"
- end
- end
-end