Commit 37ef33cba18f947699fc3f285397be34861ab51e

Authored by Dmitriy Zaporozhets
1 parent 065d9c22

Use instance methods for system_hooks_service

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/observers/system_hook_observer.rb
@@ -2,10 +2,16 @@ class SystemHookObserver &lt; BaseObserver @@ -2,10 +2,16 @@ class SystemHookObserver &lt; BaseObserver
2 observe :user, :project, :users_project 2 observe :user, :project, :users_project
3 3
4 def after_create(model) 4 def after_create(model)
5 - SystemHooksService.execute_hooks_for(model, :create) 5 + system_hook_service.execute_hooks_for(model, :create)
6 end 6 end
7 7
8 def after_destroy(model) 8 def after_destroy(model)
9 - SystemHooksService.execute_hooks_for(model, :destroy) 9 + system_hook_service.execute_hooks_for(model, :destroy)
  10 + end
  11 +
  12 + private
  13 +
  14 + def system_hook_service
  15 + SystemHooksService.new
10 end 16 end
11 end 17 end
app/services/system_hooks_service.rb
1 class SystemHooksService 1 class SystemHooksService
2 - def self.execute_hooks_for(model, event) 2 + def execute_hooks_for(model, event)
3 execute_hooks(build_event_data(model, event)) 3 execute_hooks(build_event_data(model, event))
4 end 4 end
5 5
6 private 6 private
7 7
8 - def self.execute_hooks(data) 8 + def execute_hooks(data)
9 SystemHook.all.each do |sh| 9 SystemHook.all.each do |sh|
10 async_execute_hook sh, data 10 async_execute_hook sh, data
11 end 11 end
12 end 12 end
13 13
14 - def self.async_execute_hook(hook, data) 14 + def async_execute_hook(hook, data)
15 Sidekiq::Client.enqueue(SystemHookWorker, hook.id, data) 15 Sidekiq::Client.enqueue(SystemHookWorker, hook.id, data)
16 end 16 end
17 17
18 - def self.build_event_data(model, event) 18 + def build_event_data(model, event)
19 data = { 19 data = {
20 event_name: build_event_name(model, event), 20 event_name: build_event_name(model, event),
21 created_at: model.created_at 21 created_at: model.created_at
@@ -51,7 +51,7 @@ class SystemHooksService @@ -51,7 +51,7 @@ class SystemHooksService
51 end 51 end
52 end 52 end
53 53
54 - def self.build_event_name(model, event) 54 + def build_event_name(model, event)
55 case model 55 case model
56 when UsersProject 56 when UsersProject
57 return "user_add_to_team" if event == :create 57 return "user_add_to_team" if event == :create
spec/services/system_hooks_service_spec.rb
@@ -24,10 +24,10 @@ describe SystemHooksService do @@ -24,10 +24,10 @@ describe SystemHooksService do
24 end 24 end
25 25
26 def event_data(*args) 26 def event_data(*args)
27 - SystemHooksService.build_event_data(*args) 27 + SystemHooksService.new.send :build_event_data, *args
28 end 28 end
29 29
30 def event_name(*args) 30 def event_name(*args)
31 - SystemHooksService.build_event_name(*args) 31 + SystemHooksService.new.send :build_event_name, *args
32 end 32 end
33 end 33 end