Refactor of API timeline actions (#3263)
- Increase coverage to exercise all parts of each action - Move into namespace to share common code - Misc refactor of each action for smaller methods, simpler code
This commit is contained in:
parent
256e3adc1d
commit
4289ed1d13
11 changed files with 298 additions and 97 deletions
30
app/controllers/api/v1/timelines/base_controller.rb
Normal file
30
app/controllers/api/v1/timelines/base_controller.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Api::V1::Timelines
|
||||
class BaseController < ApiController
|
||||
respond_to :json
|
||||
after_action :insert_pagination_headers, unless: -> { @statuses.empty? }
|
||||
|
||||
private
|
||||
|
||||
def cache_collection(raw)
|
||||
super(raw, Status)
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:local, :limit).merge(core_params)
|
||||
end
|
||||
|
||||
def insert_pagination_headers
|
||||
set_pagination_headers(next_path, prev_path)
|
||||
end
|
||||
|
||||
def next_path
|
||||
raise 'Override in child controllers'
|
||||
end
|
||||
|
||||
def prev_path
|
||||
raise 'Override in child controllers'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue