class MailRU::API::Request
Public Class Methods
new(api, method, method_params = {})
click to toggle source
# File lib/mailru/api/request.rb, line 17 def initialize api, method, method_params = {}, secure = Secure::Any @api = api @method = method @method_params = method_params @secure = secure end
Protected Instance Methods
c2s_signature()
click to toggle source
# File lib/mailru/api/request.rb, line 43 def c2s_signature Digest::MD5.hexdigest((@api.uid || '')+ parameters.sort.join + (@api.private_key || '')) end
handle_response(response)
click to toggle source
# File lib/mailru/api/request.rb, line 60 def handle_response response response = response.body unless response.is_a?(String) if @api.format == Format::XML response = REXML::Document.new(response).root error = response if response.name == 'error' if error raise Error.create(Integer(error.elements['error_code'].text), error.elements['error_msg'].text) end else response = JSON.parse(response) if response.is_a?(Hash) error = response['error'] if error raise Error.create(error['error_code'], error['error_msg']) end end end response end
parameters()
click to toggle source
# File lib/mailru/api/request.rb, line 47 def parameters params = {} params.merge!({app_id: @api.app_id}) if @api.app_id params.merge!({method: @method}) if @method params.merge!({session_key: @api.session_key}) if @api.session_key params.merge!({format: @api.format}) if @api.format params.merge!({uid: @api.uid}) if @api.uid params.merge!({secure: 1}) if use_s2s? params.merge!(@method_params) if @method_params params.to_a.map{|p| p.join('=')} end
s2s_signature()
click to toggle source
# File lib/mailru/api/request.rb, line 39 def s2s_signature Digest::MD5.hexdigest(parameters.sort.join + (@api.secret_key || '')) end
signature()
click to toggle source
# File lib/mailru/api/request.rb, line 34 def signature return s2s_signature if use_s2s? return c2s_signature if use_c2s? end
use_c2s?()
click to toggle source
# File lib/mailru/api/request.rb, line 30 def use_c2s? @api.private_key and (@secure == Secure::No or @secure == Secure::Any) and @api.uid end
use_s2s?()
click to toggle source
# File lib/mailru/api/request.rb, line 26 def use_s2s? @api.secret_key and (@secure == Secure::Yes or @secure == Secure::Any) end