Skip to content
Snippets Groups Projects

Add Get Web hook events API

12 files
+ 134
152
Compare changes
  • Side-by-side
  • Inline
Files
12
@@ -4,15 +4,14 @@ module WebHooks
class WebHookLogsFinder
attr_accessor :hooks, :params, :current_user
def initialize(hook, current_user, entity, params = {})
def initialize(hook, current_user, params = {})
@hook = hook
@current_user = current_user
@entity = entity
@params = params
end
def execute
return WebHookLog.none unless authorized?(@entity, @hook)
return WebHookLog.none unless authorized?(@hook)
items = @hook.web_hook_logs
by_status_code(items)
@@ -20,14 +19,14 @@ def execute
private
def authorized?(_, hook)
Ability.allowed?(current_user, :admin_project, hook.project)
def authorized?(hook)
Ability.allowed?(current_user, :read_web_hook, hook)
end
def by_status_code(logs)
return logs unless params[:status]
filters = params[:status].map { |status| string_filter_to_code(status) }
filters = params[:status].flat_map { |status| string_filter_to_code(status) }
filters.map { |code| logs.by_status_code(code) }.reduce(:or)
end
@@ -39,7 +38,7 @@ def string_filter_to_code(status_string)
when 'client_failure'
(400..499)
when 'server_failure'
(500..599)
[(500..599), WebHookService::InternalErrorResponse::ERROR_MESSAGE]
else
status_string
end
Loading