summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-02-20 18:45:09 -0700
committermo khan <mo@mokhan.ca>2014-02-20 18:45:09 -0700
commit5beba5ac1bac65d99eac14d55ee89d70254b58d3 (patch)
treecc25cc8e1053d89e577f66995f1529fc0ca8775f
parentab6a0801874f7bd6590f6e57ee76cd2b74c30618 (diff)
allow clients to specify the number of items per page.
-rw-r--r--app/controllers/v1/licenses_controller.rb5
-rw-r--r--spec/controllers/v1/liceneses_controller_spec.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/app/controllers/v1/licenses_controller.rb b/app/controllers/v1/licenses_controller.rb
index e919663..45a6489 100644
--- a/app/controllers/v1/licenses_controller.rb
+++ b/app/controllers/v1/licenses_controller.rb
@@ -3,8 +3,9 @@ class V1::LicensesController < ApplicationController
DEFAULT_PAGE = 1
def index
- page = params[:page].to_i || DEFAULT_PAGE
- @licenses = License.most_recent(page, PER_PAGE)
+ page = params[:page].present? ? params[:page].to_i : DEFAULT_PAGE
+ per_page = params[:per_page].present? ? params[:per_page].to_i : PER_PAGE
+ @licenses = License.most_recent(page, per_page)
render nothing: true
end
end
diff --git a/spec/controllers/v1/liceneses_controller_spec.rb b/spec/controllers/v1/liceneses_controller_spec.rb
index 7f1080c..5964556 100644
--- a/spec/controllers/v1/liceneses_controller_spec.rb
+++ b/spec/controllers/v1/liceneses_controller_spec.rb
@@ -21,5 +21,13 @@ describe V1::LicensesController do
response.should be_success
assigns(:licenses).should == licenses
end
+
+ it "returns the specified number of results" do
+ License.stub(:most_recent).with(1, 100).and_return(licenses)
+
+ xhr :get, :index, per_page: 100
+ response.should be_success
+ assigns(:licenses).should == licenses
+ end
end
end