psu-libraries/psulib_blacklight

View on GitHub
app/models/hathi_links.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
# frozen_string_literal: true

module HathiLinks
  def hathi_links
    return nil if ht_access.blank?

    {
      text: ht_link_text,
      url: ht_url,
      additional_text: ht_additional_text,
      etas_item: etas_item?,
      open_ht_access: open_ht_access?
    }
  end

  private

    def ht_access
      @_source['ht_access_ss']
    end

    def ht_url
      ocn = @_source['oclc_number_ssim'].first
      suffix = etas_item? ? I18n.t('blackcat.hathitrust.url_append') : ''
      "https://catalog.hathitrust.org/api/volumes/oclc/#{ocn}.html#{suffix}"
    end

    def ht_link_text
      return I18n.t('blackcat.hathitrust.public_domain_text') if open_ht_access?
      return I18n.t('blackcat.hathitrust.etas_text') if etas_item?

      nil
    end

    def ht_additional_text
      return nil unless etas_item?

      I18n.t('blackcat.hathitrust.etas_additional_text')
    end

    def etas_item?
      ht_access == 'deny' && Settings.hathi_etas
    end

    def open_ht_access?
      ht_access == 'allow'
    end
end