Class: CandyChartsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- CandyChartsController
- Defined in:
- app/controllers/candy_charts_controller.rb
Overview
************************************************************************************* TOCOMMENT *************************************************************************************
Instance Method Summary collapse
Instance Method Details
#authenticate ⇒ Object
42 43 44 45 46 |
# File 'app/controllers/candy_charts_controller.rb', line 42 def authenticate auth = ChartCandy::Authentication.new(request.url, params) @granted = (auth.valid_token? and not auth.expired?) end |
#render_xls(builder) ⇒ Object
35 36 37 38 39 40 |
# File 'app/controllers/candy_charts_controller.rb', line 35 def render_xls(builder) spreadsheet = StringIO.new builder.to_xls.write spreadsheet send_data spreadsheet.string, filename: builder.filename, type: "application/vnd.ms-excel" end |
#set_default_to ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/controllers/candy_charts_controller.rb', line 48 def set_default_to if params[:nature] == 'line' params[:to] = case params[:step] when 'day' then (Time.now.utc - 1.day).end_of_day.iso8601 when 'week' then (Time.now.utc - 1.week).end_of_week.iso8601 when 'month' then (Time.now.utc - 1.month).end_of_month.iso8601 else Time.now.utc.iso8601 end else params[:to] = Time.now.utc.iso8601 end end |
#show ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/candy_charts_controller.rb', line 7 def show if @granted set_default_to if params[:from] and not params[:to] name = (params[:id].gsub('-', '_').camelize + 'Chart') begin chart = name.constantize.new(params) rescue raise "Chart Candy: You must defined #{name}" end builder = "ChartCandy::Builder::#{params[:nature].camelize}".constantize.new(params[:id], params) chart.build builder respond_to do |format| format.json { render json: builder.to_json } format.xls { render_xls builder } end else respond_to do |format| format.json { render json: { 'state' => 'access_refused' } } format.xls { render text: 'access_refused' } end end end |