diff options
author | Alessio Caiazza <acaiazza@gitlab.com> | 2018-12-21 15:51:46 +0100 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-12-31 12:05:56 +0900 |
commit | a7aaad96f3cca5be2886bf3e18c81a7b06e5129f (patch) | |
tree | 5d9c5e548ce4a450606420e832d9e7dacdb3905e | |
parent | b9aac409a5dfcdd1410c37ffb6eb30264d0b2784 (diff) | |
download | gitlab-ce-a7aaad96f3cca5be2886bf3e18c81a7b06e5129f.tar.gz |
ReleasesFinder will always return a relation
-rw-r--r-- | app/finders/releases_finder.rb | 6 | ||||
-rw-r--r-- | app/models/release.rb | 2 | ||||
-rw-r--r-- | lib/api/releases.rb | 2 | ||||
-rw-r--r-- | spec/finders/releases_finder_spec.rb | 9 |
4 files changed, 9 insertions, 10 deletions
diff --git a/app/finders/releases_finder.rb b/app/finders/releases_finder.rb index c185f77afa2..59e84198fde 100644 --- a/app/finders/releases_finder.rb +++ b/app/finders/releases_finder.rb @@ -6,11 +6,9 @@ class ReleasesFinder @current_user = current_user end - # rubocop: disable CodeReuse/ActiveRecord def execute - return [] unless Ability.allowed?(@current_user, :read_release, @project) + return Release.none unless Ability.allowed?(@current_user, :read_release, @project) - @project.releases.order('created_at DESC') + @project.releases.sorted end - # rubocop: enable CodeReuse/ActiveRecord end diff --git a/app/models/release.rb b/app/models/release.rb index 06ed77f9079..27c9e35de56 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -11,6 +11,8 @@ class Release < ActiveRecord::Base validates :description, :project, :tag, presence: true + scope :sorted, -> { order(created_at: :desc) } + delegate :repository, to: :project def commit diff --git a/lib/api/releases.rb b/lib/api/releases.rb index c5c2e3d9594..1e6867ee154 100644 --- a/lib/api/releases.rb +++ b/lib/api/releases.rb @@ -21,7 +21,7 @@ module API use :pagination end get ':id/releases' do - releases = ::Kaminari.paginate_array(::ReleasesFinder.new(user_project, current_user).execute) + releases = ::ReleasesFinder.new(user_project, current_user).execute present paginate(releases), with: Entities::Release end diff --git a/spec/finders/releases_finder_spec.rb b/spec/finders/releases_finder_spec.rb index aa7163021cb..32ee15134a2 100644 --- a/spec/finders/releases_finder_spec.rb +++ b/spec/finders/releases_finder_spec.rb @@ -6,15 +6,14 @@ describe ReleasesFinder do let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:repository) { project.repository } - let(:v1_0_0) { create(:release, project: project, tag: 'v1.0.0')} - let(:v1_1_0) { create(:release, project: project, tag: 'v1.1.0')} + let(:v1_0_0) { create(:release, project: project, tag: 'v1.0.0') } + let(:v1_1_0) { create(:release, project: project, tag: 'v1.1.0') } subject { described_class.new(project, user)} before do - now = Time.now - v1_0_0.update_attribute(:created_at, now - 2.days) - v1_1_0.update_attribute(:created_at, now - 1.day) + v1_0_0.update_attribute(:created_at, 2.days.ago) + v1_1_0.update_attribute(:created_at, 1.day.ago) end describe '#execute' do |