diff options
Diffstat (limited to 'app/serializers/pipeline_serializer.rb')
-rw-r--r-- | app/serializers/pipeline_serializer.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb new file mode 100644 index 00000000000..2bc6cf3266e --- /dev/null +++ b/app/serializers/pipeline_serializer.rb @@ -0,0 +1,25 @@ +class PipelineSerializer < BaseSerializer + class InvalidResourceError < StandardError; end + + entity PipelineEntity + + def with_pagination(request, response) + tap { @paginator = Gitlab::Serializer::Pagination.new(request, response) } + end + + def paginated? + @paginator.present? + end + + def represent(resource, opts = {}) + if resource.is_a?(ActiveRecord::Relation) + resource = resource.includes(project: :namespace) + end + + if paginated? + super(@paginator.paginate(resource), opts) + else + super(resource, opts) + end + end +end |