Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions app/controllers/all_resources_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@ class AllResourcesController < ApplicationController
before_action :require_user

def index
video_results = VideoResults.new.create_videos
params[:category] = 'yoga' if params[:category].nil?
videos = find_all_by_category(video_results, params[:category])
@facade = PlaylistFacade.new(videos, params[:video_id])
@playlist_items = @facade.videos.paginate(page: params[:page], per_page: 5)
@facade = PlaylistFacade.new(video_results, facade_params)
end

private

def find_all_by_category(videos, category)
videos.find_all do |video|
video.category == category
end
def video_results
@video_results ||= VideoResults.new.create_videos
end

def facade_params
params.permit(:category, :video_id, :page)
end
end
11 changes: 7 additions & 4 deletions app/controllers/videos_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ def index
videos = current_user.suggested_videos
return if videos.nil?

params[:category] = 'yoga' if params[:category].nil?
videos = videos.select { |video| video.category == params[:category] }
@facade = PlaylistFacade.new(videos, params[:video_id])
@playlist_items = @facade.videos.paginate(page: params[:page], per_page: 5)
@facade = PlaylistFacade.new(videos, facade_params)
end

private

def facade_params
params.permit(:category, :video_id, :page)
end
end
38 changes: 27 additions & 11 deletions app/facades/playlist_facade.rb
Original file line number Diff line number Diff line change
@@ -1,18 +1,34 @@
class PlaylistFacade
attr_reader :videos, :video_id
attr_reader :video_results, :params

def initialize(videos, video_id = nil)
@videos = videos
@video_id = video_id
def initialize(video_results, params)
@video_results = video_results
@params = params
end

def current_video
if @video_id
@videos.find { |video| video.video_id == @video_id }
elsif @videos.nil?
nil
else
@videos.first
end
return nil if videos.nil?

filtered_videos.find { |video| video.video_id == video_id }
end

def current_video_id
params&.dig(:video_id) || filtered_videos.first.video_id
end

def category
params&.dig(:category) || 'yoga'
end

def paginated_videos
filtered_videos.paginate(page: page, per_page: 5)
end

def page
params&.dig(:page).blank? ? 1 : params&.dig(:page)
end

def filtered_videos
video_results.find_all { |video| video.category == category }
end
end
10 changes: 5 additions & 5 deletions app/views/all_resources/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<div class="col-md-2">
</div>
<div class="col-md-6">
<h2>All <%= @facade.videos.first.category.capitalize %> Videos</h2>
<h2>All <%= @facade.category.capitalize %> Videos</h2>
<div id="player">
<script src="https://www.youtube.com/player_api" ></script>
<script>
Expand All @@ -13,18 +13,18 @@
player = new YT.Player('player', {
width: '100%',
height: '390px',
videoId: '<%= @facade.current_video.video_id %>'
videoId: '<%= @facade.current_video_id %>'
});
}
</script>
</div>
<div class='video-links'>
<ul class="list-group">
<% @playlist_items.each do |video| %>
<li class="list-group-item"><%= link_to video.title, "/all_resources?video_id=#{video.video_id}&category=#{video.category}" %></li>
<% @facade.paginated_videos.each do |video| %>
<li class="list-group-item"><%= link_to video.title, "/all_resources?video_id=#{video.video_id}&category=#{video.category}&page=#{@facade.page}" %></li>
<% end %>
</ul>
<%= will_paginate @playlist_items, :container => false %>
<%= will_paginate @facade.paginated_videos, :container => false %>
</div>
</div>
<div class="additional-resources col-md-2">
Expand Down
8 changes: 4 additions & 4 deletions app/views/videos/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<section class='row content'>
<% if @facade %>
<div class="col-md-6">
<h2>Suggested <%= @facade.videos.first.category.capitalize %> Videos</h2>
<h2>Suggested <%= @facade.category.capitalize %> Videos</h2>
<div id="player">
<script src="https://www.youtube.com/player_api" ></script>
<script>
Expand All @@ -12,18 +12,18 @@
player = new YT.Player('player', {
width: '100%',
height: '390px',
videoId: '<%= @facade.current_video.video_id %>'
videoId: '<%= @facade.current_video_id %>'
});
}
</script>
</div>
<div class='video-links'>
<ul class="list-group">
<% @playlist_items.each do |video| %>
<% @facade.paginated_videos.each do |video| %>
<li class="list-group-item"><%= link_to video.title, "/videos?video_id=#{video.video_id}" %></li>
<% end %>
</ul>
<%= will_paginate @playlist_items, :container => false %>
<%= will_paginate @facade.paginated_videos, :container => false %>
</div>
</div>
<div class="additional-resources col-md-2">
Expand Down