Sha256: 9f2132e213594cccd9dfb68dc77aaa32aae8a7e1f427ceba20ab23e43003eed1

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module Digicert
  class DuplicateCertificateFinder
    def initialize(request_id:)
      @request_id = request_id
    end

    def find
      certificate_by_date_created
    end

    def self.find_by(request_id:)
      new(request_id: request_id).find
    end

    private

    attr_reader :request_id

    def certificate_by_date_created
      certificates_by_date_created.first
    end

    def certificates_by_date_created
      (duplicate_certificates || []).select do |certificate|
        compare_date(certificate.date_created, request_created_at) < 5
      end
    end

    def duplicate_certificates
      @duplicate_certificates ||=
        Digicert::DuplicateCertificate.all(order_id: request.order.id)
    end

    def request_created_at
      request.order.certificate.date_created
    end

    def compare_date(from_date, to_date)
      from_time = DateTime.parse(from_date).to_time
      to_time = DateTime.parse(to_date).to_time

      from_time.to_i - to_time.to_i
    end

    def request
      @request ||= Digicert::CertificateRequest.fetch(request_id)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
digicert-0.3.1 lib/digicert/duplicate_certificate_finder.rb