Class: Dynadot::Api

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/dynadot/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(key = nil) ⇒ Api

Returns a new instance of Api.

Raises:

  • (ArgumentError)


8
9
10
11
# File 'lib/dynadot/api.rb', line 8

def initialize(key = nil)
  raise ArgumentError, 'An API key is required' if key.to_s.empty?
  self.class.default_params key: key.to_s
end

Instance Method Details

#availabile?(domain) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/dynadot/api.rb', line 35

def availabile?(domain)
  search(domain)[domain]
end

#execute(command, parameters = {}) ⇒ Object



13
14
15
16
# File 'lib/dynadot/api.rb', line 13

def execute(command, parameters = {})
  response = self.class.get '', query: { command: command.to_s }.merge(parameters)
  parse(response)
end

#search(*domains) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/dynadot/api.rb', line 18

def search(*domains)
  parameters = Hash[domains.map.with_index { |domain, index| ["domain#{index}" , domain] }]
  results = execute(:search, parameters).map do |result|
    domain, availability = result[1], result[3]

    case availability
    when 'yes' then [domain, true]
    when 'no' then [domain, false]
    when 'offline' then [domain, nil]
    when 'system_busy' then [domain, nil]
    when 'error' then raise "Error processing #{domain}: #{result[4]}"
    end
  end

  return Hash[results]
end