diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-12-07 15:22:01 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-12-07 15:23:07 +0100 |
commit | f55fcef3dbadf5f3003e0a51633e30e05b47c51d (patch) | |
tree | 675555cc5c7c3942da790374736912fcf04df6b0 /app/serializers/pipeline_serializer.rb | |
parent | 7870614fb94ce3eb1531e77dc824f4832a808571 (diff) | |
download | gitlab-ce-f55fcef3dbadf5f3003e0a51633e30e05b47c51d.tar.gz |
Add prototype of pipelines serializer with pagination
Diffstat (limited to 'app/serializers/pipeline_serializer.rb')
-rw-r--r-- | app/serializers/pipeline_serializer.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb index f7abbec7d45..c4ca5c40dba 100644 --- a/app/serializers/pipeline_serializer.rb +++ b/app/serializers/pipeline_serializer.rb @@ -1,3 +1,37 @@ class PipelineSerializer < BaseSerializer entity PipelineEntity + include API::Helpers::Pagination + Struct.new('Pagination', :request, :response) + + def with_pagination(request, response) + tap { @pagination = Struct::Pagination.new(request, response) } + end + + def paginate? + defined?(@pagination) + end + + def represent(resource, opts = {}) + if paginate? + super(paginate(resource), opts) + else + super(resource, opts) + end + end + + private + + # Methods needed by `API::Helpers::Pagination` + # + def params + @pagination.request.query_parameters + end + + def request + @pagination.request + end + + def header(header, value) + @pagination.response.headers[header] = value + end end |