diff --git a/app/serializers/base_serializer.rb b/app/serializers/base_serializer.rb index aeb01dc2ad522ad6030056a2f1c919358d8499b4..de9a181db90f0303e3f70385aa5332dc2b1fae8b 100644 --- a/app/serializers/base_serializer.rb +++ b/app/serializers/base_serializer.rb @@ -1,17 +1,11 @@ class BaseSerializer def initialize(parameters = {}) - @entity = self.class.entity_class @request = EntityRequest.new(parameters) - @opts = { request: @request } - end - - def set(parameters) - @request.merge!(parameters) - self end def represent(resource, opts = {}) - @entity.represent(resource, @opts.reverse_merge(opts)) + self.class.entity_class + .represent(resource, opts.merge(request: @request)) end def self.entity(entity_class) diff --git a/app/serializers/build_entity.rb b/app/serializers/build_entity.rb index 203bd747ad980edc9b2bd0a238d5963d110e6303..3d9ac66de0e5a1d5d96dace4acebea48030e27c9 100644 --- a/app/serializers/build_entity.rb +++ b/app/serializers/build_entity.rb @@ -19,6 +19,6 @@ class BuildEntity < Grape::Entity private def url_to(route, build) - @urls.send("#{route}_url", build.project.namespace, build.project, build) + send("#{route}_url", build.project.namespace, build.project, build) end end diff --git a/app/serializers/commit_entity.rb b/app/serializers/commit_entity.rb index 827782e85bbbc8092759b6595ce1c74b6ddf73c6..f7eba6fc1e34d8f54a6d1f672340b688c4e66af6 100644 --- a/app/serializers/commit_entity.rb +++ b/app/serializers/commit_entity.rb @@ -4,9 +4,9 @@ class CommitEntity < API::Entities::RepoCommit expose :author, using: UserEntity expose :commit_url do |commit| - @urls.namespace_project_tree_url( - @request.project.namespace, - @request.project, + namespace_project_tree_url( + request.project.namespace, + request.project, id: commit.id) end end diff --git a/app/serializers/deployment_entity.rb b/app/serializers/deployment_entity.rb index d743b44c4a0243f994771d7b4895a72017742a70..ad6fc8d665bd571aa8289e431eb30482ff46ed30 100644 --- a/app/serializers/deployment_entity.rb +++ b/app/serializers/deployment_entity.rb @@ -11,7 +11,7 @@ class DeploymentEntity < Grape::Entity end expose :ref_url do |deployment| - @urls.namespace_project_tree_url( + namespace_project_tree_url( deployment.project.namespace, deployment.project, id: deployment.ref) diff --git a/app/serializers/entity_request.rb b/app/serializers/entity_request.rb index 12ceb38b28469e5bc06594ada78908ff5a9717c1..456ba1174c0634486d37a9bb036a252b17c2e674 100644 --- a/app/serializers/entity_request.rb +++ b/app/serializers/entity_request.rb @@ -5,10 +5,6 @@ class EntityRequest # that is present in the controller (see #20045). # def initialize(parameters) - merge!(parameters) - end - - def merge!(parameters) parameters.each do |key, value| define_singleton_method(key) { value } end diff --git a/app/serializers/environment_entity.rb b/app/serializers/environment_entity.rb index e80a4335f5351f69c767409848e3b61f8de16f8b..ee4392cc46d462de2da0cd8c7d64f553e8b8b4b6 100644 --- a/app/serializers/environment_entity.rb +++ b/app/serializers/environment_entity.rb @@ -10,7 +10,7 @@ class EnvironmentEntity < Grape::Entity expose :stoppable? expose :environment_url do |environment| - @urls.namespace_project_environment_url( + namespace_project_environment_url( environment.project.namespace, environment.project, environment) diff --git a/app/serializers/request_aware_entity.rb b/app/serializers/request_aware_entity.rb index 1586507492d66eedcb07b8bd1917781480ffb313..ff8c1142abc114809dc57354197d7b46d602a35c 100644 --- a/app/serializers/request_aware_entity.rb +++ b/app/serializers/request_aware_entity.rb @@ -1,10 +1,11 @@ module RequestAwareEntity - attr_reader :request + extend ActiveSupport::Concern - def initialize(object, options = {}) - super(object, options) + included do + include Gitlab::Routing.url_helpers + end - @request = options.fetch(:request) - @urls = Gitlab::Routing.url_helpers + def request + @options.fetch(:request) end end diff --git a/spec/serializers/entity_request_spec.rb b/spec/serializers/entity_request_spec.rb index 1c220a7b95d6b4cc471f5c9b89532e3b3c5e19d6..86654adfd541c5a658d3cbda672ed69c3e870bf0 100644 --- a/spec/serializers/entity_request_spec.rb +++ b/spec/serializers/entity_request_spec.rb @@ -15,12 +15,4 @@ describe EntityRequest do expect { subject.some_method }.to raise_error NoMethodError end end - - describe '#merge!' do - before { subject.merge!(build: 'some build') } - - it 'appends parameters' do - expect(subject.build).to eq 'some build' - end - end end