Make sure we could query against no one

We should separate the idea of not finding anyone,
and the idea of against no one.
This commit is contained in:
Lin Jen-Shin 2016-12-16 22:28:18 +08:00 committed by Clement Ho
parent 23d43243a1
commit f7f9e58092
1 changed files with 12 additions and 0 deletions

View File

@ -173,6 +173,10 @@ class IssuableFinder
params[:assignee_username].present? && params[:assignee_username] != NONE
end
def no_assignee?
params[:assignee_id] == NONE || params[:assignee_username] == NONE
end
def assignee
return @assignee if defined?(@assignee)
@ -194,6 +198,10 @@ class IssuableFinder
params[:author_username].present? && params[:author_username] != NONE
end
def no_author?
params[:author_id] == NONE || params[:author_username] == NONE
end
def author
return @author if defined?(@author)
@ -277,6 +285,8 @@ class IssuableFinder
def by_assignee(items)
if assignee
items = items.where(assignee_id: assignee.id)
elsif no_assignee?
items = items.where(assignee_id: nil)
elsif assignee_id? || assignee_username? # assignee not found
items = items.none
end
@ -287,6 +297,8 @@ class IssuableFinder
def by_author(items)
if author
items = items.where(author_id: author.id)
elsif no_author?
items = items.where(author_id: nil)
elsif author_id? || author_username? # author not found
items = items.none
end