Class: DnsMadeEasy::Zone::RemoteAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/dnsmadeeasy/zone/remote_adapter.rb

Overview

Converts DNS Made Easy API record hashes into provider-neutral zone records.

Constant Summary collapse

SUPPORTED_RECORD_TYPES =
Types::DNS_RECORD_TYPES.freeze
SOURCE_ID =
'dns-made-easy'

Instance Method Summary collapse

Constructor Details

#initialize(response, domain:, default_ttl: 300) ⇒ RemoteAdapter

Returns a new instance of RemoteAdapter.



17
18
19
20
21
# File 'lib/dnsmadeeasy/zone/remote_adapter.rb', line 17

def initialize(response, domain:, default_ttl: 300)
  @response = response
  @domain = domain
  @default_ttl = default_ttl
end

Instance Method Details

#callObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/dnsmadeeasy/zone/remote_adapter.rb', line 23

def call
  provider_records = []
  warnings = []

  remote_records.each do |remote_record|
    if remote_record['type'] == 'HTTPRED'
      warnings << omitted_httpred_warning(remote_record)
    elsif SUPPORTED_RECORD_TYPES.include?(remote_record['type'])
      provider_records << provider_record(remote_record)
    else
      return Failure(["Unsupported DNS Made Easy record type: #{remote_record['type']}"])
    end
  end

  Success(RemoteRecords.new(provider_records: provider_records, warnings: warnings))
rescue Dry::Struct::Error => e
  Failure([e.message])
end