Skip to content
Snippets Groups Projects
Commit ce0945ef authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

refactor observers. Added BaseObserver with helper methods

parent 6abf5846
No related branches found
No related tags found
No related merge requests found
class BaseObserver < ActiveRecord::Observer
protected
def notification
NotificationService.new
end
def log_info message
Gitlab::AppLogger.info message
end
end
class IssueObserver < ActiveRecord::Observer
class IssueObserver < BaseObserver
cattr_accessor :current_user
 
def after_create(issue)
Loading
Loading
@@ -27,8 +27,4 @@ class IssueObserver < ActiveRecord::Observer
def create_note(issue)
Note.create_status_change_note(issue, current_user, issue.state)
end
def notification
NotificationService.new
end
end
class KeyObserver < ActiveRecord::Observer
include Gitlab::ShellAdapter
class KeyObserver < BaseObserver
def after_save(key)
GitlabShellWorker.perform_async(
:add_key,
Loading
Loading
@@ -8,8 +6,7 @@ class KeyObserver < ActiveRecord::Observer
key.key
)
 
# Notify about ssh key being added
NotificationService.new.new_key(key)
notification.new_key(key)
end
 
def after_destroy(key)
Loading
Loading
class MergeRequestObserver < ActiveRecord::Observer
class MergeRequestObserver < BaseObserver
cattr_accessor :current_user
 
def after_create(merge_request)
Loading
Loading
@@ -16,10 +16,4 @@ class MergeRequestObserver < ActiveRecord::Observer
def after_update(merge_request)
notification.reassigned_merge_request(merge_request) if merge_request.is_being_reassigned?
end
protected
def notification
NotificationService.new
end
end
class NoteObserver < ActiveRecord::Observer
class NoteObserver < BaseObserver
def after_create(note)
notification.new_note(note)
end
protected
def notification
NotificationService.new
end
end
class ProjectObserver < ActiveRecord::Observer
class ProjectObserver < BaseObserver
def after_create(project)
GitlabShellWorker.perform_async(
:add_repository,
Loading
Loading
@@ -27,10 +27,4 @@ class ProjectObserver < ActiveRecord::Observer
 
log_info("Project \"#{project.name}\" was removed")
end
protected
def log_info message
Gitlab::AppLogger.info message
end
end
class SystemHookObserver < ActiveRecord::Observer
class SystemHookObserver < BaseObserver
observe :user, :project, :users_project
 
def after_create(model)
Loading
Loading
class UserObserver < ActiveRecord::Observer
class UserObserver < BaseObserver
def after_create(user)
log_info("User \"#{user.name}\" (#{user.email}) was created")
 
Loading
Loading
@@ -18,14 +18,4 @@ class UserObserver < ActiveRecord::Observer
end
end
end
protected
def log_info message
Gitlab::AppLogger.info message
end
def notification
NotificationService.new
end
end
class UsersProjectObserver < ActiveRecord::Observer
class UsersProjectObserver < BaseObserver
def after_commit(users_project)
return if users_project.destroyed?
Notify.delay.project_access_granted_email(users_project.id)
end
 
def after_create(users_project)
Loading
Loading
@@ -10,6 +9,12 @@ class UsersProjectObserver < ActiveRecord::Observer
action: Event::JOINED,
author_id: users_project.user.id
)
notification.new_team_member(users_project)
end
def after_update(users_project)
notification.update_team_member(users_project)
end
 
def after_destroy(users_project)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment