35 lines
878 B
Ruby
35 lines
878 B
Ruby
class AudioReportsController < ApplicationController
|
|
def show
|
|
report = build_report(params[:type])
|
|
respond_to do |format|
|
|
format.xlsx { send_data(report.to_xls, download_attributes_xls(report)) }
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def video
|
|
authorize policy_scope(Video).find(params[:video_id])
|
|
end
|
|
|
|
def build_report(type)
|
|
case type
|
|
when "big"
|
|
authorize ExcelReports::AudioReports::BrayInnovationGroupMusicCueReport.new(video)
|
|
when "nat_geo"
|
|
authorize ExcelReports::AudioReports::NatGeoMusicCueSheet.new(video)
|
|
when "nat_geo-original"
|
|
authorize ExcelReports::AudioReports::NatGeoOriginalMusicLog.new(video)
|
|
else
|
|
authorize ExcelReports::AudioReports::DiscoveryMusicCueReport.new(video)
|
|
end
|
|
end
|
|
|
|
def download_attributes_xls(report)
|
|
{
|
|
filename: report.filename,
|
|
type: Mime[:xlsx]
|
|
}
|
|
end
|
|
end
|