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