* Preload organization, not user * Preload users only when needed * Pre-load podcasts for podcast episodes in API * Avoid eager loading error by loading rating votes separately * Preload associations for moderation * Preload user comments in trees * Preload organization for non org dashboard and cleanup queries * Optimize ArticleSuggester to only load N articles at need * Remove eager loading and pass variables to partials for easier debug * Reorganize tags validation code and ignore actsastaggableon eager loading issues * Remove unused eager loading and bring up comments relation * Preload podcasts when loading podcast episodes * Fix views specs * Make sure ArticleSuggester never returns duplicates * Remove commented code * Re-trigger build * Move suggested articles back to view to respect fragment caching
29 lines
811 B
Ruby
29 lines
811 B
Ruby
module Api
|
|
module V0
|
|
class PodcastEpisodesController < ApiController
|
|
caches_action :index,
|
|
cache_path: proc { |c| c.params.permit! },
|
|
expires_in: 10.minutes
|
|
respond_to :json
|
|
|
|
before_action :cors_preflight_check
|
|
after_action :cors_set_access_control_headers
|
|
|
|
def index
|
|
@page = params[:page]
|
|
|
|
if params[:username]
|
|
@podcast = Podcast.find_by(slug: params[:username]) || not_found
|
|
@podcast_episodes = @podcast.
|
|
podcast_episodes.order("published_at desc").
|
|
page(@page).
|
|
per(30)
|
|
else
|
|
@podcast_episodes = PodcastEpisode.
|
|
includes(:podcast).
|
|
order("published_at desc").page(@page).per(30)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|