class NotifieeAPI::Client
Attributes
api_key[RW]
base_url[RW]
debug_mode[RW]
version[RW]
Public Class Methods
delete(endpoint)
click to toggle source
# File lib/notifiee_api/client.rb, line 36 def delete(endpoint) request "DELETE", endpoint end
get(endpoint, **payload)
click to toggle source
# File lib/notifiee_api/client.rb, line 16 def get(endpoint, **payload) endpoint += "?" + URI.encode_www_form(payload) unless payload.empty? request "GET", endpoint end
patch(endpoint, **payload)
click to toggle source
# File lib/notifiee_api/client.rb, line 31 def patch(endpoint, **payload) body = JSON.generate(payload) request "PATCH", endpoint, body end
post(endpoint, **payload)
click to toggle source
# File lib/notifiee_api/client.rb, line 21 def post(endpoint, **payload) body = JSON.generate(payload) request "POST", endpoint, body end
put(endpoint, **payload)
click to toggle source
# File lib/notifiee_api/client.rb, line 26 def put(endpoint, **payload) body = JSON.generate(payload) request "PUT", endpoint, body end
Private Class Methods
add_headers(request)
click to toggle source
# File lib/notifiee_api/client.rb, line 56 def add_headers(request) request['authorization'] = "Token #{@api_key}" request['Content-Type'] = 'application/json' request end
connection()
click to toggle source
# File lib/notifiee_api/client.rb, line 49 def connection connection = Net::HTTP.new(@base_url, 443) connection.use_ssl = true connection.set_debug_output $stderr if @debug_mode connection end
handle(response)
click to toggle source
# File lib/notifiee_api/client.rb, line 62 def handle response case response when Net::HTTPSuccess response.body when Net::HTTPUnprocessableEntity response.body when Net::HTTPUnauthorized raise NotifieeAPI::Unauthorized.new response.body else response.body end end
request(method, endpoint, payload=nil)
click to toggle source
# File lib/notifiee_api/client.rb, line 42 def request method, endpoint, payload=nil req = Net::HTTP.const_get(method.capitalize).new("/#{@version}/#{endpoint}") req = add_headers(req) req.body = payload handle connection.start{ |http| http.request(req) } end