Sha256: b2143189102d5b5eba4003c8d7df2e876d62af4619f0344fab454050cb11e09a
Contents?: true
Size: 1.37 KB
Versions: 14
Compression:
Stored size: 1.37 KB
Contents
require 'net/http' require 'ns1' module RecordStore class Provider::NS1 < Provider class Client < ::NS1::Client def initialize(api_key:) super(api_key) end def zones zones = super raise_if_error!(zones) zones end def zone(name) zone = super(name) raise_if_error!(zone) zone end def record(zone:, fqdn:, type:, must_exist: false) result = super(zone, fqdn, type) raise_if_error!(result) if must_exist return nil if result.is_a?(NS1::Response::Error) result end def create_record(zone:, fqdn:, type:, params:) result = super(zone, fqdn, type, params) raise_if_error!(result) nil end def modify_record(zone:, fqdn:, type:, params:) result = super(zone, fqdn, type, params) raise_if_error!(result) nil end def delete_record(zone:, fqdn:, type:) result = super(zone, fqdn, type) raise_if_error!(result) nil end private def raise_if_error!(result) return unless result.is_a?(NS1::Response::Error) if result.is_a?(NS1::Response::UnparsableBodyError) raise RecordStore::Provider::UnparseableBodyError, result.to_s end raise RecordStore::Provider::Error, result.to_s end end end end
Version data entries
14 entries across 14 versions & 1 rubygems