Class: NS1::Client

Inherits:
Object
  • Object
show all
Includes:
API::Errors, API::HttpStatusCodes, API::Records, API::Zones
Defined in:
lib/NS1/client.rb

Constant Summary collapse

API_ENDPOINT =
'https://api.nsone.net/v1'.freeze

Constants included from API::Errors

API::Errors::ApiError, API::Errors::BadRequestError, API::Errors::NS1APIError, API::Errors::NotFoundError, API::Errors::ResponseParseError, API::Errors::UnauthorizedError

Constants included from API::HttpStatusCodes

API::HttpStatusCodes::HTTP_BAD_REQUEST_CODE, API::HttpStatusCodes::HTTP_NOT_FOUND_CODE, API::HttpStatusCodes::HTTP_OK_CODE, API::HttpStatusCodes::HTTP_UNAUTHORIZED_CODE

Instance Method Summary collapse

Methods included from API::Records

#create_record, #delete_record, #record, #update_record

Methods included from API::Zones

#create_zone, #delete_zone, #update_zone, #zone, #zones

Constructor Details

#initialize(api_key) ⇒ Client

Returns a new instance of Client.



19
20
21
# File 'lib/NS1/client.rb', line 19

def initialize(api_key)
  @api_key = api_key
end

Instance Method Details

#request(http_method, endpoint, params = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/NS1/client.rb', line 23

def request(http_method, endpoint, params = nil)
  response = client.public_send(http_method, endpoint, params)
  parsed_response = Oj.load(response.body)

  return parsed_response if response.status == HTTP_OK_CODE

  raise error_class(response.status), Oj.load(response.body)["message"]

rescue Oj::ParseError
  raise ResponseParseError, response.body
end