Sha256: a46a61870f487e479dfb0e9851bea9acc9e659e6337edc1331aba9bec9acdd6a

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true
module Hyrax
  # 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

5 entries across 5 versions & 1 rubygems

Version Path
hyrax-3.0.2 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.0.1 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.0.0 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.0.0.pre.rc4 app/presenters/hyrax/stats_usage_presenter.rb
hyrax-3.0.0.pre.rc3 app/presenters/hyrax/stats_usage_presenter.rb