Class: Payload::ARMObject
- Inherits:
-
Object
- Object
- Payload::ARMObject
show all
- Defined in:
- lib/payload/arm/object.rb
Direct Known Subclasses
AccessToken, Account, BankAccount, BillingCharge, BillingItem, BillingSchedule, Card, ChargeItem, CheckBack, CheckFront, ClientToken, Customer, Entity, Intent, Invoice, InvoiceItem, Ledger, LineItem, OAuthToken, Org, Payment, PaymentActivation, PaymentAllocation, PaymentItem, PaymentLink, PaymentMethod, ProcessingAccount, ProcessingAgreement, ProcessingRule, Profile, Refund, Stakeholder, Transaction, TransactionOperation, Transfer, Webhook
Constant Summary
collapse
- @@cache =
{}
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data, session = nil) ⇒ ARMObject
Returns a new instance of ARMObject.
49
50
51
|
# File 'lib/payload/arm/object.rb', line 49
def initialize(data, session = nil)
self.set_data(data)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
96
97
98
99
100
101
102
103
|
# File 'lib/payload/arm/object.rb', line 96
def method_missing(name, *args)
attr = name.to_s
if @data.key?(attr)
return @data[attr]
else
super
end
end
|
Class Attribute Details
.data ⇒ Object
Returns the value of attribute data.
46
47
48
|
# File 'lib/payload/arm/object.rb', line 46
def data
@data
end
|
.poly ⇒ Object
Returns the value of attribute poly.
46
47
48
|
# File 'lib/payload/arm/object.rb', line 46
def poly
@poly
end
|
.session ⇒ Object
Returns the value of attribute session.
46
47
48
|
# File 'lib/payload/arm/object.rb', line 46
def session
@session
end
|
.spec ⇒ Object
Returns the value of attribute spec.
46
47
48
|
# File 'lib/payload/arm/object.rb', line 46
def spec
@spec
end
|
Class Method Details
._get_request(session = nil) ⇒ Object
113
114
115
|
# File 'lib/payload/arm/object.rb', line 113
def self._get_request(session=nil)
return Payload::ARMRequest.new(self, session)
end
|
.all(session: nil) ⇒ Object
145
146
147
|
# File 'lib/payload/arm/object.rb', line 145
def self.all(session: nil)
return self._get_request(session).all()
end
|
.create(*args, **data) ⇒ Object
127
128
129
130
131
132
133
134
135
|
# File 'lib/payload/arm/object.rb', line 127
def self.create(*args, **data)
session = data[:session]
data.delete(:session)
if args.length != 0
return self._get_request(session).create(args[0])
else
return self._get_request(session).create(data)
end
end
|
.delete(objects) ⇒ Object
141
142
143
|
# File 'lib/payload/arm/object.rb', line 141
def self.delete(objects)
return self._get_request().delete_all(objects)
end
|
.filter_by(*args, **data) ⇒ Object
121
122
123
124
125
|
# File 'lib/payload/arm/object.rb', line 121
def self.filter_by(*args, **data)
session = data[:session]
data.delete(:session)
return self._get_request(session).filter_by(*args, **data)
end
|
.get(id, session: nil) ⇒ Object
137
138
139
|
# File 'lib/payload/arm/object.rb', line 137
def self.get(id, session: nil)
return self._get_request(session).get(id)
end
|
.new(data, session = nil) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/payload/arm/object.rb', line 53
def self.new(data, session = nil)
session = session || Payload::Session.new(Payload::api_key, Payload::api_url)
session_key = session.object_id
if !@@cache.key?(session_key)
@@cache[session_key] = {}
end
session_cache = @@cache[session_key]
id = data.key?(:id) ? data[:id] : data.key?('id') ? data['id'] : nil
if id && session_cache.key?(id)
session_cache[id].set_data(data)
return session_cache[id]
else
inst = super
inst.set_session(session)
inst.set_data(data)
if id
session_cache[id] = inst
end
return inst
end
end
|
.select(*args, **data) ⇒ Object
117
118
119
|
# File 'lib/payload/arm/object.rb', line 117
def self.select(*args, **data)
return self._get_request().select(*args, **data)
end
|
Instance Method Details
#[](key) ⇒ Object
105
106
107
|
# File 'lib/payload/arm/object.rb', line 105
def [](key)
return @data[key]
end
|
#_get_request ⇒ Object
109
110
111
|
# File 'lib/payload/arm/object.rb', line 109
def _get_request()
return Payload::ARMRequest.new(self.class, @session)
end
|
#data ⇒ Object
88
89
90
|
# File 'lib/payload/arm/object.rb', line 88
def data
@data
end
|
#delete ⇒ Object
153
154
155
|
# File 'lib/payload/arm/object.rb', line 153
def delete()
return _get_request()._request('Delete', id: self.id)
end
|
#respond_to_missing?(name, include_private = false) ⇒ Boolean
166
167
168
|
# File 'lib/payload/arm/object.rb', line 166
def respond_to_missing?(name, include_private = false)
@data && @data.key?(name.to_s) || super
end
|
#session ⇒ Object
80
81
82
|
# File 'lib/payload/arm/object.rb', line 80
def session
@session
end
|
#set_data(data) ⇒ Object
92
93
94
|
# File 'lib/payload/arm/object.rb', line 92
def set_data(data)
@data = data.transform_keys { |key| key.to_s }
end
|
#set_session(session) ⇒ Object
84
85
86
|
# File 'lib/payload/arm/object.rb', line 84
def set_session(session)
@session = session
end
|
#to_json(*args) ⇒ Object
157
158
159
160
161
162
163
164
|
# File 'lib/payload/arm/object.rb', line 157
def to_json(*args)
serialized = {}
if self.class.poly
serialized.merge!(self.class.poly)
end
serialized.merge!(@data)
return serialized.to_json(*args)
end
|
#update(**update) ⇒ Object
149
150
151
|
# File 'lib/payload/arm/object.rb', line 149
def update(**update)
return _get_request()._request('Put', id: self.id, json: update)
end
|