class GraphicReportsController < 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 "nat_geo"
      authorize ExcelReports::GraphicReports::NatGeoTextGraphicsLog.new(video)
    else
      authorize ExcelReports::GraphicReports::DiscoveryGfxCueList.new(video)
    end
  end

  def download_attributes_xls(report)
    {
      filename: report.filename,
      type: Mime[:xlsx]
    }
  end
end
