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