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