Sha256: 39e057a2f413b6a3ca808bb5ee7cbd218f36ba5ee3b536961ce3e3b99cf98ef1

Contents?: true

Size: 831 Bytes

Versions: 8

Compression:

Stored size: 831 Bytes

Contents

# frozen_string_literal: true

module SolidusBacktracs
  module Api
    class ThresholdVerifier
      class << self
        def call(shipment)
          return false unless shipment.order.completed?

          !!(shipment_requires_creation?(shipment) || shipment_requires_update?(shipment))
        end

        private

        def shipment_requires_creation?(shipment)
          shipment.backtracs_synced_at.nil? &&
            Time.zone.now - shipment.order.updated_at < SolidusBacktracs.config.api_sync_threshold
        end

        def shipment_requires_update?(shipment)
          shipment.backtracs_synced_at &&
            shipment.backtracs_synced_at < shipment.order.updated_at &&
            Time.zone.now - shipment.order.updated_at < SolidusBacktracs.config.api_sync_threshold
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
solidus_bactracs-3.0.0 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.6 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.5 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.4 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.3 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.2 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.1 lib/solidus_backtracs/api/threshold_verifier.rb
solidus_backtracs-2.2.0 lib/solidus_backtracs/api/threshold_verifier.rb