class Userlist::Push::Client
Attributes
config[R]
Public Class Methods
new(config = {})
click to toggle source
# File lib/userlist/push/client.rb, line 11 def initialize(config = {}) @config = Userlist.config.merge(config) raise Userlist::ConfigurationError, :push_key unless @config.push_key raise Userlist::ConfigurationError, :push_endpoint unless @config.push_endpoint end
Public Instance Methods
delete(endpoint)
click to toggle source
# File lib/userlist/push/client.rb, line 30 def delete(endpoint) request(Net::HTTP::Delete, endpoint) end
get(endpoint)
click to toggle source
# File lib/userlist/push/client.rb, line 18 def get(endpoint) request(Net::HTTP::Get, endpoint) end
post(endpoint, payload = nil)
click to toggle source
# File lib/userlist/push/client.rb, line 22 def post(endpoint, payload = nil) request(Net::HTTP::Post, endpoint, payload) end
put(endpoint, payload = nil)
click to toggle source
# File lib/userlist/push/client.rb, line 26 def put(endpoint, payload = nil) request(Net::HTTP::Put, endpoint, payload) end
Private Instance Methods
endpoint()
click to toggle source
# File lib/userlist/push/client.rb, line 63 def endpoint @endpoint ||= URI(config.push_endpoint) end
http()
click to toggle source
# File lib/userlist/push/client.rb, line 38 def http @http ||= begin http = Net::HTTP.new(endpoint.host, endpoint.port) if endpoint.scheme == 'https' http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER end http end end
request(method, path, payload = nil)
click to toggle source
# File lib/userlist/push/client.rb, line 51 def request(method, path, payload = nil) request = method.new(path) request['Accept'] = 'application/json' request['Authorization'] = "Push #{token}" request['Content-Type'] = 'application/json; charset=UTF-8' request.body = JSON.generate(payload) if payload logger.debug "Sending #{request.method} to #{URI.join(endpoint, request.path)} with body #{request.body}" http.request(request) end
token()
click to toggle source
# File lib/userlist/push/client.rb, line 67 def token config.push_key end