Sha256: 8a0b67b8a40d3f4027755edb5f2cd88ce771dffcaf03d5f93e6c071772990447
Contents?: true
Size: 1.31 KB
Versions: 9
Compression:
Stored size: 1.31 KB
Contents
require "roar/decorator" require "roar/json/hal" module PactBroker module Api module Decorators module PaginationLinks include Roar::JSON::HAL include Roar::JSON::HAL::Links property :page, getter: lambda { |represented:, **| if represented.respond_to?(:current_page) { number: represented.current_page, size: represented.page_size, totalElements: represented.pagination_record_count, totalPages: represented.page_count, } end } link :next do | context | if represented.respond_to?(:current_page) && represented.respond_to?(:page_count) && represented.current_page < represented.page_count { href: context[:resource_url] + "?size=#{represented.page_size}&page=#{represented.current_page + 1}", title: "Next page" } end end link :previous do | context | if represented.respond_to?(:first_page?) && !represented.first_page? { href: context[:resource_url] + "?size=#{represented.page_size}&page=#{represented.current_page - 1}", title: "Previous page" } end end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems