Sha256: 12231815f3ca41c449346f2bdc5c9fdee4b075a95acb4b512fa2782a0738ed74

Contents?: true

Size: 1.88 KB

Versions: 6

Compression:

Stored size: 1.88 KB

Contents

require 'gon-sinatra'
require 'haml'
require 'sinatra/base'
require 'sinatra/partial'

module PulseMeter
  module Visualize
    class App < Sinatra::Base
      include PulseMeter::Mixins::Utils
      register Gon::Sinatra
      register Sinatra::Partial

      set :partial_template_engine, :haml

      def initialize(layout)
        @layout = layout
        self.class.set :protection, except: :frame_options if @layout.embedded
        super()
      end

      configure :production, :development do
        enable :logging
      end

      get '/' do
        @title = @layout.title
        @embedded = @layout.embedded
        gon.pageInfos = camelize_keys(@layout.page_infos)
        gon.options = camelize_keys(@layout.options)
        haml :main
      end

      get '/pages/:id/widgets' do
        id = params[:id].to_i 

        content_type :json
        camelize_keys(@layout.widgets(id - 1)).to_json
      end

      get '/pages/:page_id/widgets/:id' do
        page_id = params[:page_id].to_i 
        id = params[:id].to_i
        timespan = params[:timespan].to_i
				start_time = params[:startTime].to_i
				end_time = params[:endTime].to_i

        content_type :json
        camelize_keys(
					@layout.widget(
						page_id - 1,
						id - 1,
						timespan: timespan,
						start_time: start_time,
						end_time: end_time
					)
				).to_json
      end

      get '/sensors' do
        content_type :json
        camelize_keys(@layout.sensor_list).to_json
      end

      get '/dynamic_widget' do
				start_time = params[:startTime].to_i
				end_time = params[:endTime].to_i
        timespan = params[:timespan].to_i

        content_type :json
        camelize_keys(@layout.dynamic_widget(
          timespan: timespan,
          start_time: start_time,
          end_time: end_time,
          sensors: params[:sensor],
          type: params[:type])
        ).to_json
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pulse_meter_visualizer-0.4.22 lib/pulse_meter/visualize/app.rb
pulse_meter_visualizer-0.4.21 lib/pulse_meter/visualize/app.rb
pulse_meter_visualizer-0.4.20 lib/pulse_meter/visualize/app.rb
pulse_meter_visualizer-0.4.19 lib/pulse_meter/visualize/app.rb
pulse_meter_visualizer-0.4.18 lib/pulse_meter/visualize/app.rb
pulse_meter_visualizer-0.4.17 lib/pulse_meter/visualize/app.rb