class Trustly::Data::JSONRPCRequest

Public Class Methods

new(method=nil,data=nil,attributes=nil) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 3
def initialize(method=nil,data=nil,attributes=nil)

  if !data.nil? || !attributes.nil?
    self.payload = {"params"=>{}}
    unless data.nil?
      if !data.is_a?(Hash) && !attributes.nil?
        raise TypeError, "Data must be a Hash if attributes is provided"
      else
        self.payload["params"]["Data"] = data
      end
    else
      self.payload["params"]["Data"] = {}
    end

    self.payload["params"]["Data"]["Attributes"] = attributes unless attributes.nil?
  end

  self.payload['method']  = method unless method.nil?
  self.payload['params']  = {}     unless self.get('params')
  self.payload['version'] = '1.1'

end

Public Instance Methods

get_attribute(name) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 39
def get_attribute(name)
  data        = self.get_param('Data')
  if data.nil?
    attributes  = nil
  else
    attributes  = data.try(:[],'Attributes')
  end
  raise KeyError, "Not found 'Attributes' in data" if attributes.nil?
  return attributes.dup if name.nil?
  return attributes.try(:[],name)
end
get_data(name=nil) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 31
def get_data(name=nil)
  data = self.get_param('Data')
  return data if name.nil?
  raise  KeyError, "Not found #{name} in data" if data.nil?
  return data.dup if name.nil?
  return data.try(:[],name)
end
get_method() click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 86
def get_method()
  return self.get('method')
rescue KeyError => e
  return nil
end
get_param(name) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 27
def get_param(name)
  return self.payload['params'].try(:[],name)
end
get_uuid() click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 76
def get_uuid
  return self.get_param('UUID')
rescue KeyError => e 
  return nil
end
set_attributes(name,value) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 63
def set_attributes(name,value)
  unless name.nil?
    self.payload['params']['Data']                     = {} if self.payload['params'].try(:[],'Data').nil?
    self.payload['params']['Data']['Attributes']       = {} if self.payload['params']['Data'].try(:[],'Attributes').nil?
    self.payload['params']['Data']['Attributes'][name] = value
  end
  return value
end
set_data(name,value) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 55
def set_data(name,value)
  unless name.nil?
    self.payload['params']['Data']       = {} if self.payload['params'].try(:[],'Data').nil?
    self.payload['params']['Data'][name] = value
  end
  return value
end
set_method(method) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 82
def set_method(method)
  return self.set('method',method)
end
set_param(name,value) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 51
def set_param(name,value)
  self.payload['params'][name] = value
end
set_uuid(uuid) click to toggle source
# File lib/trustly/data/jsonrpc_request.rb, line 72
def set_uuid(uuid)
  return self.set_param('UUID',uuid)
end