Class: ZeroSSL::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/zerossl/client.rb

Instance Method Summary collapse

Constructor Details

#initializeClient

Returns a new instance of Client.



3
4
5
6
# File 'lib/zerossl/client.rb', line 3

def initialize
  @config = ZeroSSL::Setup.config
  @http   = HTTP.new
end

Instance Method Details

#certificatesObject



8
9
10
# File 'lib/zerossl/client.rb', line 8

def certificates
  @http.get('certificates')
end

#create(opts = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/zerossl/client.rb', line 12

def create(opts = {})
  attributes = %w[
    certificate_domains
    certificate_validity_days
    certificate_csr
  ]

  options = opts.transform_keys(&:to_s).slice(*attributes)
  domains = options['certificate_domains']

  if domains.is_a?(Array)
    options['certificate_domains'] = domains.join(',')
  end
  @http.post('certificates', options)
end

#download(id) ⇒ Object



37
38
39
# File 'lib/zerossl/client.rb', line 37

def download(id)
  @http.get("certificates/#{id}/download/return")&.body
end

#status(id) ⇒ Object



33
34
35
# File 'lib/zerossl/client.rb', line 33

def status(id)
  !!@http.get("certificates/#{id}/status")&.body['validation_completed']
end

#verify(id, validation_method) ⇒ Object



28
29
30
31
# File 'lib/zerossl/client.rb', line 28

def verify(id, validation_method)
  opts = { validation_method: validation_method }
  @http.post("certificates/#{id}/challenges", opts)
end