diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index 501a9a1..ed738f0 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -4,9 +4,12 @@ module ApiHelper extend Grape::API::Helpers + DEFAULT_LIMIT = 20 + DEFAULT_OFFSET = 0 + params :pagination do - optional :limit, type: Integer, values: (1..1000) - optional :offset, type: Integer, min: 0 + optional :limit, type: Integer, values: (1..1000), default: DEFAULT_LIMIT + optional :offset, type: Integer, min: 0, default: DEFAULT_OFFSET end def api_format diff --git a/app/interactors/filter_events.rb b/app/interactors/filter_events.rb index b757600..e1f393a 100644 --- a/app/interactors/filter_events.rb +++ b/app/interactors/filter_events.rb @@ -14,8 +14,6 @@ class FilterEvents attr_reader :events, :limit, :offset - DEFAULT_LIMIT = 20 - def perform(events: , params: {}, format: :jsonapi) @format = format @deleted = params[:deleted] || false @@ -30,8 +28,8 @@ def perform(events: , params: {}, format: :jsonapi) @count_query = d } .then_if(paginate?) { |d| - @offset = params[:offset] || 0 - @limit = params[:limit] || DEFAULT_LIMIT + @offset = params[:offset] + @limit = params[:limit] PaginatedDataset.new(d).paginate(offset: @offset, limit: @limit) } end diff --git a/spec/api/events_endpoints_spec.rb b/spec/api/events_endpoints_spec.rb index e97447f..4a9e0e4 100644 --- a/spec/api/events_endpoints_spec.rb +++ b/spec/api/events_endpoints_spec.rb @@ -85,8 +85,8 @@ def auth_get(path, **params) before { auth_get "#{path}?offset=0" } let(:meta) do { - limit: FilterEvents::DEFAULT_LIMIT, - offset: 0, + limit: ApiHelper::DEFAULT_LIMIT, + offset: ApiHelper::DEFAULT_OFFSET, count: events_cnt } end