Class: Acme::Client::Resources::RenewalInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/acme/client/resources/renewal_info.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, **arguments) ⇒ RenewalInfo

Returns a new instance of RenewalInfo.



6
7
8
9
# File 'lib/acme/client/resources/renewal_info.rb', line 6

def initialize(client, **arguments)
  @client = client
  assign_attributes(**arguments)
end

Instance Attribute Details

#explanation_urlObject (readonly)

Returns the value of attribute explanation_url.



4
5
6
# File 'lib/acme/client/resources/renewal_info.rb', line 4

def explanation_url
  @explanation_url
end

#retry_afterObject (readonly)

Returns the value of attribute retry_after.



4
5
6
# File 'lib/acme/client/resources/renewal_info.rb', line 4

def retry_after
  @retry_after
end

#suggested_windowObject (readonly)

Returns the value of attribute suggested_window.



4
5
6
# File 'lib/acme/client/resources/renewal_info.rb', line 4

def suggested_window
  @suggested_window
end

Instance Method Details

#suggested_renewal_timeObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/acme/client/resources/renewal_info.rb', line 19

def suggested_renewal_time
  return nil unless suggested_window_start && suggested_window_end

  start_time = DateTime.rfc3339(suggested_window_start).to_time
  end_time = DateTime.rfc3339(suggested_window_end).to_time
  window_duration = end_time - start_time

  random_offset = rand(0.0..window_duration)
  selected_time = start_time + random_offset

  selected_time > Time.now ? selected_time : Time.now
end

#suggested_window_endObject



15
16
17
# File 'lib/acme/client/resources/renewal_info.rb', line 15

def suggested_window_end
  suggested_window&.fetch('end', nil)
end

#suggested_window_startObject



11
12
13
# File 'lib/acme/client/resources/renewal_info.rb', line 11

def suggested_window_start
  suggested_window&.fetch('start', nil)
end

#to_hObject



32
33
34
35
36
37
38
# File 'lib/acme/client/resources/renewal_info.rb', line 32

def to_h
  {
    suggested_window: suggested_window,
    explanation_url: explanation_url,
    retry_after: retry_after
  }
end