Commit ce0945efcd36cc89d1b633500e4bdecf373fc304

Authored by Dmitriy Zaporozhets
1 parent 6abf5846

refactor observers. Added BaseObserver with helper methods

app/observers/base_observer.rb 0 → 100644
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
  1 +class BaseObserver < ActiveRecord::Observer
  2 + protected
  3 +
  4 + def notification
  5 + NotificationService.new
  6 + end
  7 +
  8 + def log_info message
  9 + Gitlab::AppLogger.info message
  10 + end
  11 +end
app/observers/issue_observer.rb
1 -class IssueObserver < ActiveRecord::Observer 1 +class IssueObserver < BaseObserver
2 cattr_accessor :current_user 2 cattr_accessor :current_user
3 3
4 def after_create(issue) 4 def after_create(issue)
@@ -27,8 +27,4 @@ class IssueObserver &lt; ActiveRecord::Observer @@ -27,8 +27,4 @@ class IssueObserver &lt; ActiveRecord::Observer
27 def create_note(issue) 27 def create_note(issue)
28 Note.create_status_change_note(issue, current_user, issue.state) 28 Note.create_status_change_note(issue, current_user, issue.state)
29 end 29 end
30 -  
31 - def notification  
32 - NotificationService.new  
33 - end  
34 end 30 end
app/observers/key_observer.rb
1 -class KeyObserver < ActiveRecord::Observer  
2 - include Gitlab::ShellAdapter  
3 - 1 +class KeyObserver < BaseObserver
4 def after_save(key) 2 def after_save(key)
5 GitlabShellWorker.perform_async( 3 GitlabShellWorker.perform_async(
6 :add_key, 4 :add_key,
@@ -8,8 +6,7 @@ class KeyObserver &lt; ActiveRecord::Observer @@ -8,8 +6,7 @@ class KeyObserver &lt; ActiveRecord::Observer
8 key.key 6 key.key
9 ) 7 )
10 8
11 - # Notify about ssh key being added  
12 - NotificationService.new.new_key(key) 9 + notification.new_key(key)
13 end 10 end
14 11
15 def after_destroy(key) 12 def after_destroy(key)
app/observers/merge_request_observer.rb
1 -class MergeRequestObserver < ActiveRecord::Observer 1 +class MergeRequestObserver < BaseObserver
2 cattr_accessor :current_user 2 cattr_accessor :current_user
3 3
4 def after_create(merge_request) 4 def after_create(merge_request)
@@ -16,10 +16,4 @@ class MergeRequestObserver &lt; ActiveRecord::Observer @@ -16,10 +16,4 @@ class MergeRequestObserver &lt; ActiveRecord::Observer
16 def after_update(merge_request) 16 def after_update(merge_request)
17 notification.reassigned_merge_request(merge_request) if merge_request.is_being_reassigned? 17 notification.reassigned_merge_request(merge_request) if merge_request.is_being_reassigned?
18 end 18 end
19 -  
20 - protected  
21 -  
22 - def notification  
23 - NotificationService.new  
24 - end  
25 end 19 end
app/observers/note_observer.rb
1 -class NoteObserver < ActiveRecord::Observer 1 +class NoteObserver < BaseObserver
2 def after_create(note) 2 def after_create(note)
3 notification.new_note(note) 3 notification.new_note(note)
4 end 4 end
5 -  
6 - protected  
7 -  
8 - def notification  
9 - NotificationService.new  
10 - end  
11 end 5 end
app/observers/project_observer.rb
1 -class ProjectObserver < ActiveRecord::Observer 1 +class ProjectObserver < BaseObserver
2 def after_create(project) 2 def after_create(project)
3 GitlabShellWorker.perform_async( 3 GitlabShellWorker.perform_async(
4 :add_repository, 4 :add_repository,
@@ -27,10 +27,4 @@ class ProjectObserver &lt; ActiveRecord::Observer @@ -27,10 +27,4 @@ class ProjectObserver &lt; ActiveRecord::Observer
27 27
28 log_info("Project \"#{project.name}\" was removed") 28 log_info("Project \"#{project.name}\" was removed")
29 end 29 end
30 -  
31 - protected  
32 -  
33 - def log_info message  
34 - Gitlab::AppLogger.info message  
35 - end  
36 end 30 end
app/observers/system_hook_observer.rb
1 -class SystemHookObserver < ActiveRecord::Observer 1 +class SystemHookObserver < 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)
app/observers/user_observer.rb
1 -class UserObserver < ActiveRecord::Observer 1 +class UserObserver < BaseObserver
2 def after_create(user) 2 def after_create(user)
3 log_info("User \"#{user.name}\" (#{user.email}) was created") 3 log_info("User \"#{user.name}\" (#{user.email}) was created")
4 4
@@ -18,14 +18,4 @@ class UserObserver &lt; ActiveRecord::Observer @@ -18,14 +18,4 @@ class UserObserver &lt; ActiveRecord::Observer
18 end 18 end
19 end 19 end
20 end 20 end
21 -  
22 - protected  
23 -  
24 - def log_info message  
25 - Gitlab::AppLogger.info message  
26 - end  
27 -  
28 - def notification  
29 - NotificationService.new  
30 - end  
31 end 21 end
app/observers/users_project_observer.rb
1 -class UsersProjectObserver < ActiveRecord::Observer 1 +class UsersProjectObserver < BaseObserver
2 def after_commit(users_project) 2 def after_commit(users_project)
3 return if users_project.destroyed? 3 return if users_project.destroyed?
4 - Notify.delay.project_access_granted_email(users_project.id)  
5 end 4 end
6 5
7 def after_create(users_project) 6 def after_create(users_project)
@@ -10,6 +9,12 @@ class UsersProjectObserver &lt; ActiveRecord::Observer @@ -10,6 +9,12 @@ class UsersProjectObserver &lt; ActiveRecord::Observer
10 action: Event::JOINED, 9 action: Event::JOINED,
11 author_id: users_project.user.id 10 author_id: users_project.user.id
12 ) 11 )
  12 +
  13 + notification.new_team_member(users_project)
  14 + end
  15 +
  16 + def after_update(users_project)
  17 + notification.update_team_member(users_project)
13 end 18 end
14 19
15 def after_destroy(users_project) 20 def after_destroy(users_project)