diff options
-rw-r--r-- | app/controllers/projects/pipelines_controller.rb | 3 | ||||
-rw-r--r-- | app/serializers/pipeline_entity.rb | 38 | ||||
-rw-r--r-- | app/serializers/pipeline_serializer.rb | 5 | ||||
-rw-r--r-- | spec/serializers/pipeline_serializer_spec.rb | 23 |
4 files changed, 9 insertions, 60 deletions
diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb index 3d095e2b690..b1d82e952bd 100644 --- a/app/controllers/projects/pipelines_controller.rb +++ b/app/controllers/projects/pipelines_controller.rb @@ -11,7 +11,6 @@ class Projects::PipelinesController < Projects::ApplicationController @running_or_pending_count = PipelinesFinder.new(project).execute(scope: 'running').count @pipelines_count = PipelinesFinder.new(project).execute.count - @last_updated = params[:updated_at] respond_to do |format| format.html @@ -19,7 +18,7 @@ class Projects::PipelinesController < Projects::ApplicationController render json: { pipelines: PipelineSerializer .new(project: @project, user: @current_user) - .incremental(@pipelines, @last_updated), + .represent(@pipelines), updated_at: Time.now.utc, count: { all: @pipelines_count, diff --git a/app/serializers/pipeline_entity.rb b/app/serializers/pipeline_entity.rb index 08346b4ed77..cf99e628d5f 100644 --- a/app/serializers/pipeline_entity.rb +++ b/app/serializers/pipeline_entity.rb @@ -2,7 +2,7 @@ class PipelineEntity < Grape::Entity include RequestAwareEntity expose :id - expose :user, if: proc { created_exposure? }, using: UserEntity + expose :user, using: UserEntity expose :url do |pipeline| namespace_project_pipeline_path( @@ -11,7 +11,7 @@ class PipelineEntity < Grape::Entity pipeline) end - expose :details, if: proc { updated_exposure? } do + expose :details do expose :status expose :duration expose :finished_at @@ -20,7 +20,7 @@ class PipelineEntity < Grape::Entity expose :manual_actions, using: PipelineActionEntity end - expose :flags, if: proc { created_exposure? } do + expose :flags do expose :latest?, as: :latest expose :triggered?, as: :triggered @@ -33,7 +33,7 @@ class PipelineEntity < Grape::Entity end end - expose :ref, if: proc { updated_exposure? } do + expose :ref do expose :name do |pipeline| pipeline.ref end @@ -48,16 +48,16 @@ class PipelineEntity < Grape::Entity expose :tag? end - expose :commit, if: proc { created_exposure? }, using: CommitEntity + expose :commit, using: CommitEntity - expose :retry_url, if: proc { updated_exposure? } do |pipeline| + expose :retry_url do |pipeline| can?(request.user, :update_pipeline, pipeline.project) && pipeline.retryable? && retry_namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline.id) end - expose :cancel_url, if: proc { updated_exposure? } do |pipeline| + expose :cancel_url do |pipeline| can?(request.user, :update_pipeline, pipeline.project) && pipeline.cancelable? && cancel_namespace_project_pipeline_path(pipeline.project.namespace, @@ -65,28 +65,4 @@ class PipelineEntity < Grape::Entity end expose :created_at, :updated_at - - def created_exposure? - !incremental? || created? - end - - def updated_exposure? - !incremental? || updated? - end - - def incremental? - options[:incremental] && last_updated - end - - def last_updated - options.fetch(:last_updated) - end - - def updated? - @object.updated_at > last_updated - end - - def created? - @object.created_at > last_updated - end end diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb index 8d3182d9766..f7abbec7d45 100644 --- a/app/serializers/pipeline_serializer.rb +++ b/app/serializers/pipeline_serializer.rb @@ -1,8 +1,3 @@ class PipelineSerializer < BaseSerializer entity PipelineEntity - - def incremental(resource, last_updated) - represent(resource, incremental: true, - last_updated: last_updated) - end end diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index c4eba2f2537..f6b7d1eb1dd 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -11,26 +11,5 @@ describe PipelineSerializer do let(:user) { create(:user) } - context 'when using incremental serializer' do - let(:json) do - serializer.incremental(pipelines, time).as_json - end - - context 'when pipeline has been already updated' do - let(:time) { Time.now } - - it 'exposes only minimal information' do - expect(json.first.keys).to contain_exactly(:id, :url) - expect(json.second.keys).to contain_exactly(:id, :url) - end - end - - context 'when pipeline updated in the meantime' do - let(:time) { Time.now - 10.minutes } - - it 'exposes new data incrementally' do - expect(json.first.keys.count).to eq 9 - end - end - end + # TODO add some tests here. end |