Class: Mpp::Extensions::MCP::MCPReceipt

Inherits:
Data
  • Object
show all
Defined in:
lib/mpp/extensions/mcp/types.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, challenge_id:, method:, timestamp:, reference: nil, settlement: nil) ⇒ MCPReceipt

Returns a new instance of MCPReceipt.



143
144
145
146
# File 'lib/mpp/extensions/mcp/types.rb', line 143

def initialize(status:, challenge_id:, method:, timestamp:,
  reference: nil, settlement: nil)
  super
end

Instance Attribute Details

#challenge_idObject (readonly)

Returns the value of attribute challenge_id

Returns:

  • (Object)

    the current value of challenge_id



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def challenge_id
  @challenge_id
end

#methodObject (readonly)

Returns the value of attribute method

Returns:

  • (Object)

    the current value of method



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def method
  @method
end

#referenceObject (readonly)

Returns the value of attribute reference

Returns:

  • (Object)

    the current value of reference



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def reference
  @reference
end

#settlementObject (readonly)

Returns the value of attribute settlement

Returns:

  • (Object)

    the current value of settlement



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def settlement
  @settlement
end

#statusObject (readonly)

Returns the value of attribute status

Returns:

  • (Object)

    the current value of status



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def status
  @status
end

#timestampObject (readonly)

Returns the value of attribute timestamp

Returns:

  • (Object)

    the current value of timestamp



141
142
143
# File 'lib/mpp/extensions/mcp/types.rb', line 141

def timestamp
  @timestamp
end

Class Method Details

.from_core(receipt, challenge_id:, method:, settlement: nil) ⇒ Object



189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/mpp/extensions/mcp/types.rb', line 189

def self.from_core(receipt, challenge_id:, method:, settlement: nil)
  ts = receipt.timestamp.utc.iso8601
  ts = ts.sub(/\+00:00$/, "Z")

  new(
    status: receipt.status,
    challenge_id: challenge_id,
    method: method,
    timestamp: ts,
    reference: receipt.reference.empty? ? nil : receipt.reference,
    settlement: settlement
  )
end

.from_dict(data) ⇒ Object



164
165
166
167
168
169
170
171
172
173
# File 'lib/mpp/extensions/mcp/types.rb', line 164

def self.from_dict(data)
  new(
    status: data["status"],
    challenge_id: data["challengeId"],
    method: data["method"],
    timestamp: data["timestamp"],
    reference: data["reference"],
    settlement: data["settlement"]
  )
end

.from_meta(meta) ⇒ Object



175
176
177
178
179
# File 'lib/mpp/extensions/mcp/types.rb', line 175

def self.from_meta(meta)
  return nil unless meta.key?(META_RECEIPT)

  from_dict(meta[META_RECEIPT])
end

Instance Method Details

#to_coreObject



181
182
183
184
185
186
187
# File 'lib/mpp/extensions/mcp/types.rb', line 181

def to_core
  Mpp::Receipt.new(
    status: status,
    timestamp: Time.iso8601(timestamp.gsub("Z", "+00:00")),
    reference: reference || ""
  )
end

#to_dictObject



148
149
150
151
152
153
154
155
156
157
158
# File 'lib/mpp/extensions/mcp/types.rb', line 148

def to_dict
  result = {
    "status" => status,
    "challengeId" => challenge_id,
    "method" => method,
    "timestamp" => timestamp
  }
  result["reference"] = reference if reference
  result["settlement"] = settlement if settlement
  result
end

#to_metaObject



160
161
162
# File 'lib/mpp/extensions/mcp/types.rb', line 160

def to_meta
  {META_RECEIPT => to_dict}
end