mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-12 00:31:48 -05:00
40 lines
894 B
Ruby
40 lines
894 B
Ruby
|
require 'base64'
|
||
|
require 'json'
|
||
|
require 'rest-client'
|
||
|
|
||
|
class SocialcastApi
|
||
|
|
||
|
attr_accessor :domain, :username, :password
|
||
|
|
||
|
def initialize domain, username, password
|
||
|
@domain = domain
|
||
|
@username = username
|
||
|
@password = password
|
||
|
end
|
||
|
|
||
|
def base_url
|
||
|
"https://#{@domain}.socialcast.com/api"
|
||
|
end
|
||
|
|
||
|
def headers
|
||
|
encoded = Base64.encode64 "#{@username}:#{@password}"
|
||
|
{:Authorization => "Basic #{encoded.strip!}", :Accept => "application/json"}
|
||
|
end
|
||
|
|
||
|
def request url
|
||
|
JSON.parse(RestClient.get url, headers)
|
||
|
end
|
||
|
|
||
|
def list_users(opts={})
|
||
|
page = opts[:page] ? opts[:page] : 1
|
||
|
response = request "#{base_url}/users?page=#{page}"
|
||
|
response['users'].sort {|u| u['id']}
|
||
|
end
|
||
|
|
||
|
def list_messages(opts={})
|
||
|
page = opts[:page] ? opts[:page] : 1
|
||
|
response = request "#{base_url}/messages?page=#{page}"
|
||
|
response['messages'].sort {|m| m['id']}
|
||
|
end
|
||
|
end
|