lib/hungry/user.rb in hungry-0.1.1 vs lib/hungry/user.rb in hungry-0.1.2
- old
+ new
@@ -1,77 +1,77 @@
module Hungry
class User < Resource
-
+
self.endpoint = '/users'
-
+
### ASSOCIATIONS:
-
+
has_many :reviews, 'Hungry::Review'
-
+
### FINDERS:
-
+
def self.with_ip(ip_address)
collection.all(ip: ip_address)
end
-
+
### CLASS METHODS:
-
+
def self.authenticate_with_persistence_token(persistence_token)
result = authenticate_via_api 'Cookie' => "persistence_token=#{persistence_token}"
return false unless result.present?
-
+
from_json(result)
end
-
+
def self.authenticate_with_perishable_token(perishable_token)
result = authenticate_via_api query: "perishable_token=#{perishable_token}"
return false unless result.present?
-
+
from_json(result)
end
-
+
def self.from_json(json)
new Util.parse_json(json)
end
-
+
def self.authenticate_via_api(options = {})
options = {
path: '/account.json',
query: nil
}.merge(options)
-
+
url = URI.parse(Hungry.api_url)
url.path = options.delete(:path)
url.query = options.delete(:query)
-
+
http = Net::HTTP.new(url.host, url.port)
if url.scheme == 'https'
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
-
+
request = Net::HTTP::Get.new(url.request_uri, options)
response = http.request request
-
+
if response.code.to_i == 200
response.body
else
false
end
end
-
+
### ATTRIBUTES:
-
+
### Preview:
attr_accessor :id, :name, :avatar, :slug, :profile_url, :score, :bio,
:location, :email,
-
+
### FULL:
:gender, :birth_date, :website_url, :persistence_token,
:single_access_token, :maintainer_of, :connections,
:device_tokens, :admin,
-
+
### Utility:
:resources, :counters, :created_at, :updated_at, :activated_at
-
+
end
end