Sha256: 06d49519636b46fd59c30db44a20942ce390eb11d113162352ebd6510258c71c

Contents?: true

Size: 1.14 KB

Versions: 27

Compression:

Stored size: 1.14 KB

Contents

module ForestLiana
  class PieStatGetter
    attr_accessor :record

    def initialize(resource, params)
      @resource = resource
      @params = params
    end

    def perform
      if @params[:group_by_field]
        value = @resource

        @params[:filters].try(:each) do |filter|
          operator, filter_value = OperatorValueParser.parse(filter[:value])
          value = OperatorValueParser.add_where(value, filter[:field], operator,
                                                filter_value, @resource)
        end

        # NOTICE: The generated alias for a count is "count_all", for a sum the
        #         alias looks like "sum_#{aggregate_field}"
        field = 'all'
        if @params[:aggregate].downcase == 'sum'
          field = @params[:aggregate_field].downcase
        end

        value = value
          .group(@params[:group_by_field])
          .order("#{@params[:aggregate].downcase}_#{field} DESC")
          .send(@params[:aggregate].downcase, @params[:aggregate_field])
          .map do |k, v|
            { key: k, value: v }
          end

        @record = Model::Stat.new(value: value)
      end
    end

  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
forest_liana-1.3.37 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.36 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.35 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.34 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.33 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.32 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.31 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.30 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.29 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.28 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.27 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.26 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.25 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.24 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.23 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.22 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.21 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.20 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.19 app/services/forest_liana/pie_stat_getter.rb
forest_liana-1.3.18 app/services/forest_liana/pie_stat_getter.rb