class UmengMessage::Subject

Constants

CANCEL_URL
CAST_TYPE
CHECK_URL
PUSH_URL
UPLOAD_URL

Attributes

content[R]
error_code[R]
file_id[R]
payload[R]
platform[R]
ret[R]
task_id[R]

Public Class Methods

new(platform, options) click to toggle source
# File lib/umeng_message/subject.rb, line 13
def initialize(platform, options)
  @platform          = platform
  @options           = options
end

Public Instance Methods

cancel() click to toggle source
# File lib/umeng_message/subject.rb, line 26
def cancel
  post_youmeng(CANCEL_URL, Params.cancel_params(@platform, @options['task_id']))
end
check() click to toggle source
# File lib/umeng_message/subject.rb, line 22
def check
  post_youmeng(CHECK_URL, Params.check_params(@platform, @options['task_id']))
end
push() click to toggle source
# File lib/umeng_message/subject.rb, line 18
def push
  post_youmeng(PUSH_URL, Params.push_params(@platform, @options))
end
upload() click to toggle source
# File lib/umeng_message/subject.rb, line 30
def upload
  post_youmeng(UPLOAD_URL, Params.upload_params(@platform, @options['content']))
end

Private Instance Methods

error_result(error_message) click to toggle source
# File lib/umeng_message/subject.rb, line 54
def error_result(error_message)
  {result: error_message, error_code: '999', data: {}}
end
parse_res(result) click to toggle source
# File lib/umeng_message/subject.rb, line 50
def parse_res result
  {result: result['ret'], error_code: result['data']['error_code'], data: result['data']}
end
post_youmeng(url, payload) click to toggle source
# File lib/umeng_message/subject.rb, line 35
def post_youmeng(url, payload)
  sign = Sign.generate @platform, url, payload
  begin
    request = HTTPI::Request.new
    request.url = "#{url}?sign=#{sign}"
    request.open_timeout = 3
    request.read_timeout = 3
    request.body = payload.to_json
    response = HTTPI.post(request)
    parse_res(ActiveSupport::JSON.decode(response.body))
  rescue => e
    error_result e.message
  end
end