Sha256: a0b00e4b5b61f2baa3ab796c9c1c35255bc3d7455c8cac3d2842d4c18cb50ff4

Contents?: true

Size: 1.39 KB

Versions: 1

Compression:

Stored size: 1.39 KB

Contents

module Aeternitas
  module WebUi
    class PollablesController < Aeternitas::WebUi::ApplicationController
      before_action :set_pollable, except: [:index]
      before_action :set_time_range, except: [:index, :show]


      def index
        respond_to do |format|
          format.html { }
          format.json { }
        end
      end

      def show ; end

      def timeline
        respond_to do |format|
          format.json { render json: Aeternitas::WebUi::PollableStatistics.timeline(@pollable, @from, @to)}
        end
      end

      def execution_time
        respond_to do |format|
          format.json { render json: Aeternitas::WebUi::PollableStatistics.execution_time(@pollable, @from, @to)}
        end
      end

      def data_growth
        respond_to do |format|
          format.json { render json: Aeternitas::WebUi::PollableStatistics.data_growth(@pollable, @from, @to)}
        end
      end

      private

      def set_pollable
        pollable_name = params.fetch(:id)

        if Aeternitas::PollableMetaData.where(pollable_class: pollable_name).exists?
          @pollable = pollable_name.constantize
        else
          render_error(404, "Pollable of type #{pollable_name} not found")
          false
        end
      end

      def set_time_range
        @from = DateTime.parse(params.require(:from))
        @to = DateTime.parse(params.require(:to))
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aeternitas_web_ui-0.1.0 app/controllers/aeternitas/web_ui/pollables_controller.rb