Commit fc1c250d authored by Riyad Preukschas's avatar Riyad Preukschas

Reorder Note methods and add helpers

parent 63dac843
...@@ -18,7 +18,6 @@ require 'carrierwave/orm/activerecord' ...@@ -18,7 +18,6 @@ require 'carrierwave/orm/activerecord'
require 'file_size_validator' require 'file_size_validator'
class Note < ActiveRecord::Base class Note < ActiveRecord::Base
attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id, attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id,
:attachment, :line_code :attachment, :line_code
...@@ -55,12 +54,58 @@ class Note < ActiveRecord::Base ...@@ -55,12 +54,58 @@ class Note < ActiveRecord::Base
}, without_protection: true) }, without_protection: true)
end end
def notify def commit_author
@notify ||= false @commit_author ||=
project.users.find_by_email(noteable.author_email) ||
project.users.find_by_name(noteable.author_name)
rescue
nil
end end
def notify_author def diff
@notify_author ||= false noteable.diffs[diff_file_index]
end
def diff_file_index
line_code.split('_')[0].to_i
end
def diff_file_name
diff.b_path
end
def diff_new_line
line_code.split('_')[2].to_i
end
def discussion_id
@discussion_id ||= [noteable_type, noteable_id, line_code].join.underscore.to_sym
end
# Returns true if this is a downvote note,
# otherwise false is returned
def downvote?
note.start_with?('-1') || note.start_with?(':-1:')
end
def for_commit?
noteable_type == "Commit"
end
def for_commit_diff_line?
for_commit? && for_diff_line?
end
def for_diff_line?
line_code.present?
end
def for_merge_request?
noteable_type == "MergeRequest"
end
def for_merge_request_diff_line?
for_merge_request? && for_diff_line?
end end
# override to return commits, which are not active record # override to return commits, which are not active record
...@@ -76,6 +121,14 @@ class Note < ActiveRecord::Base ...@@ -76,6 +121,14 @@ class Note < ActiveRecord::Base
nil nil
end end
def notify
@notify ||= false
end
def notify_author
@notify_author ||= false
end
# Check if we can notify commit author # Check if we can notify commit author
# with email about our comment # with email about our comment
# #
...@@ -94,31 +147,9 @@ class Note < ActiveRecord::Base ...@@ -94,31 +147,9 @@ class Note < ActiveRecord::Base
commit_author.email != user.email commit_author.email != user.email
end end
def for_commit?
noteable_type == "Commit"
end
def for_diff_line?
line_code.present?
end
def commit_author
@commit_author ||=
project.users.find_by_email(noteable.author_email) ||
project.users.find_by_name(noteable.author_name)
rescue
nil
end
# Returns true if this is an upvote note, # Returns true if this is an upvote note,
# otherwise false is returned # otherwise false is returned
def upvote? def upvote?
note.start_with?('+1') || note.start_with?(':+1:') note.start_with?('+1') || note.start_with?(':+1:')
end end
# Returns true if this is a downvote note,
# otherwise false is returned
def downvote?
note.start_with?('-1') || note.start_with?(':-1:')
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment