class CS::Api

Attributes

uid[RW]

Public Class Methods

new(username, password) click to toggle source
# File lib/csapi.rb, line 45
def initialize(username, password)
  @username = username
  r = HTTP.post('/sessions', body:{username: username, password: password}.to_json)

  raise CS::APIError.new('Unsupported API version') if r.headers['X-CS-Error'] == 'clientVersionNotSupportedAnymore'
  raise CS::AuthError.new("Could not login") if r.code != 200

  @cookies = []
  @cookies=r.headers['Set-Cookie'].split(/;/).first
  #end

  data = JSON.parse r.body
  @uid = data['url'].gsub(/[^\d]/, '')
  @profile = data.keep_if {|k,v| ['realname', 'username', 'profile_image', 'gender', 'address'].include?(k)}
  @profile['uid'] = @uid
  HTTP.headers 'Cookie' => @cookies
  CS.instance = self
end

Public Instance Methods

friends(user=@uid) click to toggle source
# File lib/csapi.rb, line 118
def friends(user=@uid)
  url = "/users/#{user}/friends"
  r = HTTP.get(url)
  JSON.parse r.body
end
message(url) click to toggle source
# File lib/csapi.rb, line 93
def message(url)
  r = HTTP.get(url)
  JSON.parse r.body
end
messages(*args) click to toggle source
# File lib/csapi.rb, line 88
def messages(*args)
  CS::Messages.getMessages(*args)
end
photos(user=@uid) click to toggle source
# File lib/csapi.rb, line 111
def photos(user=@uid)
  url = "/users/#{user}/photos"
  r = HTTP.get(url)
  JSON.parse r.body
end
profile(user=@uid) click to toggle source
# File lib/csapi.rb, line 104
def profile(user=@uid)
  url = "/users/#{user}/profile"
  r = HTTP.get(url)
  JSON.parse r.body
end
references(user=@uid) click to toggle source
# File lib/csapi.rb, line 125
def references(user=@uid)
  url = "/users/#{user}/references"
  r = HTTP.get(url)
  JSON.parse r.body
end
request(id) click to toggle source
# File lib/csapi.rb, line 81
def request(id)
  url = "/couchrequests/#{id}"
  r = HTTP.get(url)
  JSON.parse r.body
end
requests(limit=10) click to toggle source
# File lib/csapi.rb, line 65
def requests(limit=10)
  url = "/users/#{@uid}/couchrequests"
  q = {
      limit: limit
  }
  r = HTTP.get(url, query:q)
  requests = {}
  response = JSON.parse r.body
  response['object'].each do |req|
    key = req.gsub(/[^\d]/, '')
    requests[key] = self.request(key)
  end
  requests
end
userdata() click to toggle source
# File lib/csapi.rb, line 99
def userdata
  @profile
end