This new version replaces the existing pagination for the .all()
endpoints that used a combination
of page
and per_page
parameters, and instead uses a cursor
based pagination. So to list
(as an example) Plans you now can:
ChartMogul.api_key = '<API key goes here>'
# Getting the first page
plans = ChartMogul::Plan.all(per_page: 12)
This will return an array of plans (if available), and a cursor + has_more fields:
{
"plans": [
{
"uuid": "some_uuid",
"data_source_uuid": "some_uuid",
"name": "Master Plan"
}
],
"has_more": true,
"cursor": "MjAyMy0wNy0yOFQwODowOToyMi4xNTQyMDMwMDBaJjk0NDQ0Mg=="
}
# You can get the following pages by passing a cursor to .all
if plans.has_more
more_plans = ChartMogul::Plan.all(per_page: 12, cursor: plans.cursor)
end
# Or by calling .next on the result
if plans.has_more
more_plans = plans.next(per_page: 3)
end
If you have existing code that relies on the page
parameter, those requests will now throw an error
alerting you of their deprecation.