discourse/script/import_scripts/socialcast/socialcast_api.rb

40 lines
894 B
Ruby
Raw Normal View History

2016-05-26 14:54:38 +08:00
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