pagination: refactor to avoid counting pages in API.
Previously the page-based (numbered) paginator would always count the total_pages, even in API calls when it wasn't needed. This could be very slow in some cases. Refactor so that total_pages isn't calculated unless it's called. While we're at it, refactor to condense all the sequential vs. numbered pagination logic into one module. This incidentally fixes a couple more bugs: * "page=b0" returned all pages rather than nothing. * Bad parameters like "page=blaha123" and "page=a123blah" were accepted.
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
class ApplicationRecord < ActiveRecord::Base
|
||||
self.abstract_class = true
|
||||
|
||||
include Danbooru::Paginator::ActiveRecordExtension
|
||||
concerning :PaginationMethods do
|
||||
class_methods do
|
||||
def paginate(*options)
|
||||
extending(PaginationExtension).paginate(*options)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
concerning :SearchMethods do
|
||||
class_methods do
|
||||
|
||||
Reference in New Issue
Block a user