class Pushpad::Project
Constants
- ATTRIBUTES
Public Class Methods
create(attributes)
click to toggle source
# File lib/pushpad/project.rb, line 32 def self.create(attributes) endpoint = "https://pushpad.xyz/api/v1/projects" 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/project.rb, line 43 def self.find(id) response = Request.get("https://pushpad.xyz/api/v1/projects/#{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/project.rb, line 53 def self.find_all response = Request.get("https://pushpad.xyz/api/v1/projects") 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/project.rb, line 19 def initialize(options) @id = options[:id] @sender_id = options[:sender_id] @name = options[:name] @website = options[:website] @icon_url = options[:icon_url] @badge_url = options[:badge_url] @notifications_ttl = options[:notifications_ttl] @notifications_require_interaction = options[:notifications_require_interaction] @notifications_silent = options[:notifications_silent] @created_at = options[:created_at] && Time.parse(options[:created_at]) end
Public Instance Methods
delete()
click to toggle source
# File lib/pushpad/project.rb, line 84 def delete raise "You must set id" unless id response = Request.delete("https://pushpad.xyz/api/v1/projects/#{id}") unless response.code == "202" raise DeleteError, "Response #{response.code} #{response.message}: #{response.body}" end end
update(attributes)
click to toggle source
# File lib/pushpad/project.rb, line 65 def update(attributes) raise "You must set id" unless id endpoint = "https://pushpad.xyz/api/v1/projects/#{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