Sha256: 0495aca294b045ef0475a074776ba3641a69b22ba74f44c2a9040f09227cde74

Contents?: true

Size: 1.29 KB

Versions: 19

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true
module Hyrax
  ##
  # @abstract methods used by both {WorkUsage} and {FileUsage}
  class StatsUsagePresenter
    attr_accessor :id, :model

    def created
      @created ||= date_for_analytics
    end

    private

    def user_id
      @user_id ||= begin
                     user = Hydra::Ability.user_class.find_by_user_key(model.depositor)
                     user ? user.id : nil
                   end
    end

    def to_flots(stats)
      stats.map(&:to_flot)
    end

    # model.date_uploaded reflects the date the object was uploaded by the user
    # and therefore (if available) the date that we want to use for the stats
    # model.create_date reflects the date the file was added to Fedora. On data
    # migrated from one repository to another the created_date can be later
    # than the date the file was uploaded.
    def date_for_analytics
      earliest = Hyrax.config.analytic_start_date
      date_uploaded = string_to_date(model.date_uploaded)
      date_analytics = date_uploaded ? date_uploaded : model.create_date
      return date_analytics if earliest.blank?
      earliest > date_analytics ? earliest : date_analytics
    end

    def string_to_date(date_str)
      Time.zone.parse(date_str)
    rescue ArgumentError, TypeError
      nil
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
hyrax-5.0.1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-5.0.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-5.0.0.rc3 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-5.0.0.rc2 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-5.0.0.rc1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.6.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0.rc3 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0.rc2 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0.rc1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.5.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0.beta2 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.4.2 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-4.0.0.beta1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.4.1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.4.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.3.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.2.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.1.0 app/presenters/hyrax/stats_usage_presenter.rb