docbrown/app/controllers/concerns/api/videos_controller.rb
Fernando Valverde 8c836430ca
API V1 transition (#17835)
* API Articles v0-v1 restructure

* Remove unused helper

* Bulk move API controllers into concerns + add V1 controllers

* Extract API routes + some fixes

* Fix v1 api_controller authenticate! + add more article_controller specs

* Completed spec/requests/api/v1/articles_spec.rb

* specs up to listings

* All v1 specs except for 9 skips

* mime_types cleanup + authenticate! relocation

Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
2022-06-23 14:26:00 -06:00

24 lines
709 B
Ruby

module Api
module VideosController
extend ActiveSupport::Concern
INDEX_ATTRIBUTES_FOR_SERIALIZATION = %i[
id video path title video_thumbnail_url user_id video_duration_in_seconds video_source_url
].freeze
private_constant :INDEX_ATTRIBUTES_FOR_SERIALIZATION
def index
page = params[:page]
per_page = (params[:per_page] || 24).to_i
num = [per_page, 1000].min
@video_articles = Article.with_video
.includes([:user])
.select(INDEX_ATTRIBUTES_FOR_SERIALIZATION)
.order(hotness_score: :desc)
.page(page).per(num)
set_surrogate_key_header "videos", Article.table_key, @video_articles.map(&:record_key)
end
end
end