# encoding: utf-8 module Sinatra module ReportHandler extend Hexacta def enable_reports p "Enabling reports..." before '/reports/*' do error(403) if authenticated(User).permissions.empty? end get '/reports' do slim :reports end get '/reports/:report_name' do |report_name| date = Date.parse(params[:date]) unless params[:date].nil? date ||= Date.today headers "Content-Disposition" => "attachment;filename=#{report_name}.#{date}.xls", "Content-Type" => "application/octet-stream" slim "reports/#{report_name}".to_sym, locals: { :date => date }, :layout => false end end end register ReportHandler end