diff options
Diffstat (limited to 'app/controllers/concerns/integrations/hooks_execution.rb')
-rw-r--r-- | app/controllers/concerns/integrations/hooks_execution.rb | 95 |
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 |