Sha256: a6c6ea49d09576a62479d96225d44f6b32695a5da334776f2a3d37a6ac66c24b

Contents?: true

Size: 1.07 KB

Versions: 94

Compression:

Stored size: 1.07 KB

Contents

module AdminApi
  class CodeSnippetsController < AdminApiController
    respond_to :json

    def index
      return unless authenticate

      params.permit!

      @events = Usage::CodeSnippetEvent

      if params[:created_after] || params[:created_before]
        @events = @events.created_between(params[:created_after], params[:created_before])
      end

      query = []
      query.push('snippet = :snippet') if params[:snippet]
      query.push('language = :language') if params[:language]

      unless query.empty?
        @events = @events.where([query.join(' and '), params.to_h])
      end

      @events = @events.group(:snippet, :language, :section, :action).count(:action)
      @events = organize_data(@events)

      render 'index'
    end

    private

    def organize_data(events)
      output = {}
      events.each do |path, count|
        pointer = output
        path.each do |k|
          leaf_value = (k == path.last) ? count : {}
          pointer[k] = pointer[k] || leaf_value
          pointer = pointer[k]
        end
      end
      output
    end
  end
end

Version data entries

94 entries across 94 versions & 1 rubygems

Version Path
station-0.5.16 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.15 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.14 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.13 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.12 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.11 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.10 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.9 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.8 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.7 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.6 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.5 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.4 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.3 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.2 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.1 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.5.0 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.4.9 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.4.8 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb
station-0.4.7 lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb