class PQSDK::RemoteObject
The RemoteObject
class is an abstraction for common API utilities like .get and save
.
Attributes
endpoint[R]
Public Class Methods
all()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 15 def self.all res = RestLayer.get(@endpoint) if res[0] == 200 res[1].map { |entry| from_hash(entry) } else raise "Unexpected HTTP status code #{res[0]}, #{res[1]}" end end
from_hash(json)
click to toggle source
# File lib/pqsdk/remote_object.rb, line 35 def self.from_hash(json) result = new json.each do |k, v| result.send("#{k}=", v) if result.respond_to?("#{k}=") end result end
get(id)
click to toggle source
# File lib/pqsdk/remote_object.rb, line 24 def self.get(id) res = RestLayer.get("#{@endpoint}/#{id}") if res[0] == 200 from_hash res[1] elsif res[0] == 404 nil else raise "Unexpected HTTP status code #{res[0]}, #{res[1]}" end end
Public Instance Methods
create()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 52 def create res = RestLayer.post(self.class.endpoint, serializable_hash, 'Authorization' => "Bearer #{Token.access_token}") if [201, 202].include? res[0] self.id = res[1]['id'] true else raise "Unexpected HTTP status code #{res[0]}, #{res[1]}" # false end end
create!()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 77 def create! create end
persisted?()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 85 def persisted? !id.nil? end
save()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 44 def save if valid? persisted? ? update! : create! else false end end
save!()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 73 def save! save || raise('Save failed') end
update()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 63 def update res = RestLayer.put("#{self.class.endpoint}/#{id}", serializable_hash, 'Authorization' => "Bearer #{Token.access_token}") if res[0] == 200 true else raise "Unexpected HTTP status code #{res[0]}, #{res[1]}" # false end end
update!()
click to toggle source
# File lib/pqsdk/remote_object.rb, line 81 def update! update end