Class: Trustly::Data::JSONRPCRequest

Inherits:
Request show all
Defined in:
lib/trustly/data/jsonrpc_request.rb

Instance Attribute Summary

Attributes inherited from Request

#method

Attributes inherited from Trustly::Data

#payload

Instance Method Summary collapse

Methods inherited from Trustly::Data

#get, #get_from, #json, #pop, #set, #set_in, #vacumm

Constructor Details

#initialize(method = nil, data = nil, attributes = nil) ⇒ JSONRPCRequest

Returns a new instance of JSONRPCRequest.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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

Instance Method Details

#get_attribute(name) ⇒ Object

Raises:

  • (KeyError)


39
40
41
42
43
44
45
46
47
48
49
# 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) ⇒ Object

Raises:

  • (KeyError)


31
32
33
34
35
36
37
# 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_methodObject



86
87
88
89
90
# 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) ⇒ Object



27
28
29
# File 'lib/trustly/data/jsonrpc_request.rb', line 27

def get_param(name)
  return self.payload['params'].try(:[],name)
end

#get_uuidObject



76
77
78
79
80
# 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) ⇒ Object



63
64
65
66
67
68
69
70
# 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) ⇒ Object



55
56
57
58
59
60
61
# 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) ⇒ Object



82
83
84
# File 'lib/trustly/data/jsonrpc_request.rb', line 82

def set_method(method)
  return self.set('method',method)
end

#set_param(name, value) ⇒ Object



51
52
53
# File 'lib/trustly/data/jsonrpc_request.rb', line 51

def set_param(name,value)
  self.payload['params'][name] = value
end

#set_uuid(uuid) ⇒ Object



72
73
74
# File 'lib/trustly/data/jsonrpc_request.rb', line 72

def set_uuid(uuid)
  return self.set_param('UUID',uuid)
end