diff options
author | Robert Speicher <rspeicher@gmail.com> | 2019-04-09 17:48:40 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2019-04-09 17:48:40 +0000 |
commit | 41e36b05def9ebf2b800a04d067367f7571bae9d (patch) | |
tree | bb820292a51b243698bfe2a3ff7fb756f7eb8d02 /app | |
parent | c640f2230c50312f64a6d0ec9fce639ae9527902 (diff) | |
parent | 726f142dd233d82da6a7e60eaee30342ceecfbaf (diff) | |
download | gitlab-ce-41e36b05def9ebf2b800a04d067367f7571bae9d.tar.gz |
Merge branch '6649-extract-ee-specific-files-lines-for-ci-cd-app-serializers' into 'master'
Extract preloaded_relations
See merge request gitlab-org/gitlab-ce!27168
Diffstat (limited to 'app')
-rw-r--r-- | app/serializers/pipeline_serializer.rb | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb index dbbeca9431d..95d73c6422d 100644 --- a/app/serializers/pipeline_serializer.rb +++ b/app/serializers/pipeline_serializer.rb @@ -7,23 +7,7 @@ class PipelineSerializer < BaseSerializer # rubocop: disable CodeReuse/ActiveRecord def represent(resource, opts = {}) if resource.is_a?(ActiveRecord::Relation) - resource = resource.preload([ - :stages, - :retryable_builds, - :cancelable_statuses, - :trigger_requests, - :manual_actions, - :scheduled_actions, - :artifacts, - :merge_request, - { - pending_builds: :project, - project: [:route, { namespace: :route }], - artifacts: { - project: [:route, { namespace: :route }] - } - } - ]) + resource = resource.preload(preloaded_relations) end if paginated? @@ -51,4 +35,26 @@ class PipelineSerializer < BaseSerializer data = represent(resource, { only: [{ details: [:stages] }], preload: true }) data.dig(:details, :stages) || [] end + + private + + def preloaded_relations + [ + :stages, + :retryable_builds, + :cancelable_statuses, + :trigger_requests, + :manual_actions, + :scheduled_actions, + :artifacts, + :merge_request, + { + pending_builds: :project, + project: [:route, { namespace: :route }], + artifacts: { + project: [:route, { namespace: :route }] + } + } + ] + end end |