exercism/website

View on GitHub
app/assemblers/assemble_community_videos.rb

Summary

Maintainability
A
0 mins
Test Coverage
class AssembleCommunityVideos
  include Mandate

  initialize_with :params

  def call
    SerializePaginatedCollection.(
      videos,
      serializer: SerializeCommunityVideos,
      meta: {
        unscoped_total: CommunityVideo.approved.count
      }
    )
  end

  memoize
  def videos
    CommunityVideo::Search.(
      criteria: params[:criteria],
      page: params[:video_page],
      track:
    )
  end

  memoize
  def track
    Track.find(params[:video_track_slug]) if params[:video_track_slug].present?
  end
end