Sha256: f8edf5ad5d2dacff8c4ef61500d5c75340f32c0440e80089c065774da9b4f0ec

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'arbre'
require 'active_admin'

module CertWatch
  module Views
    class CertificateState < Arbre::Component
      builder_method :cert_watch_certificate_state

      STATE_MAPPING = {
        'installed' => 'ok',
        'installing' => 'warn',
        'renewing' => 'warn',
        'installing_failed' => 'error',
        'renewing_failed' => 'error'
      }.freeze

      def build(certificate_or_domain, options = {})
        state = get_state(certificate_or_domain)
        format = options.fetch(:format, 'short')

        add_class 'cert_watch_certificate_state'

        status_tag(t(state, scope: "cert_watch.states.#{format}"),
                   [state, STATE_MAPPING[state]].compact.join(' '))
      end

      private

      def get_state(certificate_or_domain)
        get_certificate(certificate_or_domain).try(:state) || 'not_found'
      end

      def get_certificate(certificate_or_domain)
        if certificate_or_domain.is_a?(String)
          Certificate.find_by_domain(certificate_or_domain)
        else
          certificate_or_domain
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cert_watch-1.1.0 lib/cert_watch/views/certificate_state.rb
cert_watch-1.0.0 lib/cert_watch/views/certificate_state.rb