Class: Marty::ReportController

Inherits:
ApplicationController show all
Defined in:
app/controllers/marty/report_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#failed_authentication, #find_current_user, #get_conf, #handle_unverified_request, #logout_user, #password_authentication, #session_expiration, #session_expired?, #set_user, #start_user_session, #successful_authentication, #try_to_autologin, #user_setup

Instance Method Details

#indexObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/marty/report_controller.rb', line 2

def index
  format, req_disposition, title =
    params[:format], params[:disposition], params[:reptitle]

  raise "bad format" unless Marty::ContentHandler::GEN_FORMATS.member?(format)

  data = Marty::ReportForm.run_eval(params)

  # hacky: shouldn't have error parsing logic here
  format = "json" if data.is_a?(Hash) && (data[:error] || data["error"])

  # hack for testing -- txt -> csv
  exp_format = format == "txt" ? "csv" : format

  res, type, disposition, filename =
                          Marty::ContentHandler.
                            export(data, exp_format, title)

  # hack for testing -- set content-type
  type = "text/plain" if format == "txt" && type =~ /csv/

  return send_data(res,
                   type:        type,
                   filename:    filename,
                   disposition: req_disposition || disposition,
                  )
end