class MobilyApiJsonRequestHandler

Attributes

auth[RW]
request[RW]

Public Class Methods

new(auth=nil, request=MobilyApiRequest.new) click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 10
def initialize(auth=nil, request=MobilyApiRequest.new)
  @request = request
  @params = {}
  @content_type = 'json'
  @json_dict = {'Data' => {}}
  @auth = auth
end

Public Instance Methods

add_auth(auth) click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 18
def add_auth(auth)
  if auth.is_a? MobilyApiAuth
    @json_dict['Data'].merge!({'Auth' => {'mobile' => auth.mobile_number, 'password' => auth.password}})
  end
end
add_parameter(key, value) click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 28
def add_parameter(key, value)
  if !value.nil?
    @params.merge!({key => value})
  end
end
get_request_data() click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 34
def get_request_data
  if @params.size > 0
    @json_dict['Data'].update({'Params' => @params})
  end
  add_auth(@auth)
  JSON.generate(@json_dict)
end
handle() click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 42
def handle
  parse_response(request.send(get_request_data, @content_type))
end
set_api_method(method_name) click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 24
def set_api_method(method_name)
  @json_dict['Data'].merge!({'Method' => method_name})
end

Private Instance Methods

parse_response(data) click to toggle source
# File lib/mobily/mobily_api_json_request_handler.rb, line 48
def parse_response(data)
  json_dict = JSON.parse(data)
  if not json_dict['Error'].nil?
    error = json_dict['Error']
    raise MobilyApiError.new(error['ErrorCode'], error['MessageAr'], error['MessageEn'])
  end
  response = MobilyApiResponse.new(json_dict['status'], json_dict['ResponseStatus'])
  json_dict['Data'].each { |k, v| response.add_data(k, v) }
  response
end