Skip to content
Snippets Groups Projects

Add Get Web hook events API

2 unresolved threads
Compare and Show latest version
16 files
+ 547
301
Compare changes
  • Side-by-side
  • Inline
Files
16
@@ -4,15 +4,14 @@ module WebHooks
@@ -4,15 +4,14 @@ module WebHooks
class WebHookLogsFinder
class WebHookLogsFinder
attr_accessor :hooks, :params, :current_user
attr_accessor :hooks, :params, :current_user
def initialize(hook, current_user, entity, params = {})
def initialize(hook, current_user, params = {})
@hook = hook
@hook = hook
@current_user = current_user
@current_user = current_user
@entity = entity
@params = params
@params = params
end
end
def execute
def execute
return WebHookLog.none unless authorized?(@entity, @hook)
return WebHookLog.none unless authorized?(@hook)
items = @hook.web_hook_logs
items = @hook.web_hook_logs
by_status_code(items)
by_status_code(items)
@@ -20,14 +19,14 @@ def execute
@@ -20,14 +19,14 @@ def execute
private
private
def authorized?(_, hook)
def authorized?(hook)
Ability.allowed?(current_user, :admin_project, hook.project)
Ability.allowed?(current_user, :read_web_hook, hook)
end
end
def by_status_code(logs)
def by_status_code(logs)
return logs unless params[:status]
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)
filters.map { |code| logs.by_status_code(code) }.reduce(:or)
end
end
@@ -35,11 +34,11 @@ def by_status_code(logs)
@@ -35,11 +34,11 @@ def by_status_code(logs)
def string_filter_to_code(status_string)
def string_filter_to_code(status_string)
case status_string
case status_string
when 'successful'
when 'successful'
(200..299).to_a
(200..299)
when 'client_failure'
when 'client_failure'
(400..499).to_a
(400..499)
when 'server_failure'
when 'server_failure'
(500..599).to_a
[(500..599), WebHookService::InternalErrorResponse::ERROR_MESSAGE]
else
else
status_string
status_string
end
end
Loading