class Digicert::DuplicateCertificateFinder

Attributes

request_id[R]

Public Class Methods

find_by(request_id:) click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 15
def self.find_by(request_id:)
  new(request_id: request_id).find
end
new(request_id:) click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 3
def initialize(request_id:)
  @request_id = request_id
end

Public Instance Methods

find() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 7
def find
  certificate_by_date_created || raise(
    Digicert::Errors::RequestError.new(
      request: "The request is still pending, needs an approval first!",
    ),
  )
end

Private Instance Methods

certificate_by_date_created() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 23
def certificate_by_date_created
  if request.status == "approved"
    certificates_by_date_created.first
  end
end
certificates_by_date_created() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 29
def certificates_by_date_created
  (duplicate_certificates || []).select do |certificate|
    compare_date(certificate.date_created, request_created_at) < 5
  end
end
compare_date(from_date, to_date) click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 44
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
duplicate_certificates() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 35
def duplicate_certificates
  @duplicate_certificates ||=
    Digicert::DuplicateCertificate.all(order_id: request.order.id)
end
request() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 51
def request
  @request ||= Digicert::CertificateRequest.fetch(request_id)
end
request_created_at() click to toggle source
# File lib/digicert/duplicate_certificate_finder.rb, line 40
def request_created_at
  request.order.certificate.date_created
end