class Pushpad::Sender
Constants
- ATTRIBUTES
Public Class Methods
create(attributes)
click to toggle source
# File lib/pushpad/sender.rb, line 27 def self.create(attributes) endpoint = "https://pushpad.xyz/api/v1/senders" response = Request.post(endpoint, attributes.to_json) unless response.code == "201" raise CreateError, "Response #{response.code} #{response.message}: #{response.body}" end new(JSON.parse(response.body, symbolize_names: true)) end
find(id)
click to toggle source
# File lib/pushpad/sender.rb, line 38 def self.find(id) response = Request.get("https://pushpad.xyz/api/v1/senders/#{id}") unless response.code == "200" raise FindError, "Response #{response.code} #{response.message}: #{response.body}" end new(JSON.parse(response.body, symbolize_names: true)) end
find_all()
click to toggle source
# File lib/pushpad/sender.rb, line 48 def self.find_all response = Request.get("https://pushpad.xyz/api/v1/senders") unless response.code == "200" raise FindError, "Response #{response.code} #{response.message}: #{response.body}" end JSON.parse(response.body, symbolize_names: true).map do |attributes| new(attributes) end end
new(options)
click to toggle source
# File lib/pushpad/sender.rb, line 19 def initialize(options) @id = options[:id] @name = options[:name] @vapid_private_key = options[:vapid_private_key] @vapid_public_key = options[:vapid_public_key] @created_at = options[:created_at] && Time.parse(options[:created_at]) end
Public Instance Methods
delete()
click to toggle source
# File lib/pushpad/sender.rb, line 79 def delete raise "You must set id" unless id response = Request.delete("https://pushpad.xyz/api/v1/senders/#{id}") unless response.code == "204" raise DeleteError, "Response #{response.code} #{response.message}: #{response.body}" end end
update(attributes)
click to toggle source
# File lib/pushpad/sender.rb, line 60 def update(attributes) raise "You must set id" unless id endpoint = "https://pushpad.xyz/api/v1/senders/#{id}" response = Request.patch(endpoint, attributes.to_json) unless response.code == "200" raise UpdateError, "Response #{response.code} #{response.message}: #{response.body}" end updated = self.class.new(JSON.parse(response.body, symbolize_names: true)) ATTRIBUTES.each do |attr| self.instance_variable_set("@#{attr}", updated.instance_variable_get("@#{attr}")) end self end