Module: Porkbun

Defined in:
lib/porkbun.rb,
lib/porkbun/version.rb

Defined Under Namespace

Classes: Abstract, Domain, Error, Record

Constant Summary collapse

VERSION =
"2.0.0"

Class Method Summary collapse

Class Method Details

.new(domain) ⇒ Object



52
53
54
# File 'lib/porkbun.rb', line 52

def self.new(domain)
  Domain.new(domain)
end

.ping ⇒ Object



48
49
50
# File 'lib/porkbun.rb', line 48

def self.ping
  porkbun 'ping'
end

.porkbun(path, options = {}) ⇒ Object



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

def self.porkbun(path, options = {})
  if ENV.fetch('PORKBUN_API_KEY', nil).nil? || ENV.fetch('PORKBUN_SECRET_API_KEY', nil).nil?
    abort 'PORKBUN_API_KEY and PORKBUN_SECRET_API_KEY must be set'
  end
  uri = URI(File.join('https://api.porkbun.com/api/json/v3', path))
  request = Net::HTTP::Post.new(uri)
  request['Content-Type'] = 'application/json'
  request.body = {
    secretapikey: ENV.fetch('PORKBUN_SECRET_API_KEY', nil),
    apikey: ENV.fetch('PORKBUN_API_KEY', nil)
  }.merge(options).to_json
  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
    http.request(request)
  end

  JSON.parse(res.body, symbolize_names: true)
end