Noosfero/noosfero

View on GitHub
plugins/analytics/controllers/profile/analytics_plugin/time_on_page_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class AnalyticsPlugin::TimeOnPageController < ProfileController
  before_action :skip_page_view

  def page_load
    # to avoid concurrency problems with the original deferred request, also defer this
    Noosfero::Scheduler::Defer.later do
      page_view = profile.page_views.where(request_id: params[:id]).first
      page_view.request = request
      AnalyticsPlugin::PageView.transaction do
        page_view.page_load! Time.at(params[:time].to_i)
        page_view.update_column :title, params[:title] if params[:title].present?
      end
    end

    render nothing: true
  end

  def report
    page_view = profile.page_views.where(request_id: params[:id]).first
    page_view.request = request
    page_view.increase_time_on_page!

    render nothing: true
  end

  protected

    def skip_page_view
      @analytics_skip_page_view = true
    end
end