module Pagy::JsonApiExtra::BackendOverride

def pagy_get_page(vars)

Override the Backend method
def pagy_get_page(vars)
  return super if pagy_skip_jsonapi?(vars)
  return 1 if params[:page].nil?
  params[:page][vars[:page_param] || DEFAULT[:page_param]].to_i
end

def pagy_jsonapi_links(pagy, **opts)

Return the jsonapi links
def pagy_jsonapi_links(pagy, **opts)
  { first: pagy_url_for(pagy, 1,         **opts),
    last:  pagy_url_for(pagy, pagy.last, **opts),
    prev:  pagy_url_for(pagy, pagy.prev, **opts),
    next:  pagy_url_for(pagy, pagy.next, **opts) }
end

def pagy_skip_jsonapi?(vars)

Should skip the jsonapi
def pagy_skip_jsonapi?(vars)
  return true if vars[:jsonapi] == false || (vars[:jsonapi].nil? && DEFAULT[:jsonapi] == false)
  # check the reserved :page param
  raise ReservedParamError, params[:page] unless params[:page].respond_to?(:fetch) || params[:page].nil?
end