Sha256: 4d9f39707e1e04e862e75af11d01a4e6e258fed0d38b8b08ff072721a4499bd9

Contents?: true

Size: 1.1 KB

Versions: 9

Compression:

Stored size: 1.1 KB

Contents

require "date"

module Digicert
  module CLI
    class OrderRetriever
      def initialize(order_id, attributes)
        @order_id = order_id
        @wait_time = attributes[:wait_time] || 10
        @number_of_times = attributes[:number_of_times] || 5
      end

      def fetch
        fetch_order_in_interval
        reissued_order
      end

      def self.fetch(order_id, attributes)
        new(order_id, **attributes).fetch
      end

      private

      attr_reader :order_id, :number_of_times, :wait_time, :reissued_order

      def fetch_order_in_interval
        number_of_times.to_i.times do |number|
          sleep wait_time.to_i
          say("Fetch attempt #{number + 1}..")
          order = Digicert::Order.fetch(order_id)

          if recently_reissued?(order.last_reissued_date)
            break @reissued_order = order
          end
        end
      end

      def recently_reissued?(datetime)
        if datetime
          ((Time.now - DateTime.parse(datetime).to_time) / 60).ceil < 3
        end
      end

      def say(message)
        Digicert::CLI::Util.say(message)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
digicert-cli-1.0.0 lib/digicert/cli/order_retriever.rb
digicert-cli-0.5.2 lib/digicert/cli/order_retriever.rb
digicert-cli-0.5.1 lib/digicert/cli/order_retriever.rb
digicert-cli-0.5.0 lib/digicert/cli/order_retriever.rb
digicert-cli-0.4.2 lib/digicert/cli/order_retriever.rb
digicert-cli-0.4.1 lib/digicert/cli/order_retriever.rb
digicert-cli-0.4.0 lib/digicert/cli/order_retriever.rb
digicert-cli-0.3.0 lib/digicert/cli/order_retriever.rb
digicert-cli-0.2.0 lib/digicert/cli/order_retriever.rb