Sha256: bff0a35e32135c63adf9532dfd229e4b7e0236c57057f75c189327496b28b3fe

Contents?: true

Size: 1.92 KB

Versions: 9

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

module Kanaui
  class ReportsController < Kanaui::EngineController
    def index
      @reports = JSON.parse(Kanaui::DashboardHelper::DashboardApi.available_reports(options_for_klient)).map(&:deep_symbolize_keys)
    end

    def new
      @report = {}
    end

    def create
      Kanaui::DashboardHelper::DashboardApi.create_report(report_from_params.to_json, options_for_klient)

      flash[:notice] = 'Report successfully created'
      redirect_to action: :index
    end

    def edit
      @report = JSON.parse(Kanaui::DashboardHelper::DashboardApi.available_reports(options_for_klient))
                    .find { |x| x['reportName'] == params.require(:id) }
                    .deep_symbolize_keys
    end

    def update
      Kanaui::DashboardHelper::DashboardApi.update_report(params.require(:id), report_from_params.to_json, options_for_klient)

      flash[:notice] = 'Report successfully updated'
      redirect_to action: :index
    end

    def refresh
      Kanaui::DashboardHelper::DashboardApi.refresh_report(params.require(:id), options_for_klient)

      flash[:notice] = 'Report refresh successfully scheduled'
      redirect_to action: :index
    end

    def destroy
      Kanaui::DashboardHelper::DashboardApi.delete_report(params.require(:id), options_for_klient)

      flash[:notice] = 'Report successfully deleted'
      redirect_to action: :index
    end

    private

    def report_from_params
      {
        reportName: params[:report_name],
        reportPrettyName: params[:report_pretty_name],
        reportType: params[:report_type],
        sourceTableName: params[:source_table_name],
        sourceName: params[:source_name],
        sourceQuery: params[:source_query],
        refreshProcedureName: params[:refresh_procedure_name],
        refreshFrequency: params[:refresh_frequency].presence,
        refreshHourOfDayGmt: params[:refresh_hour_of_day_gmt]
      }
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kanaui-4.0.3 app/controllers/kanaui/reports_controller.rb
kanaui-4.0.2 app/controllers/kanaui/reports_controller.rb
kanaui-4.0.1 app/controllers/kanaui/reports_controller.rb
kanaui-2.2.1 app/controllers/kanaui/reports_controller.rb
kanaui-4.0.0 app/controllers/kanaui/reports_controller.rb
kanaui-2.1.3 app/controllers/kanaui/reports_controller.rb
kanaui-2.1.2 app/controllers/kanaui/reports_controller.rb
kanaui-2.1.1 app/controllers/kanaui/reports_controller.rb
kanaui-2.1.0 app/controllers/kanaui/reports_controller.rb