Sha256: 2b91d5e74dbd4b3c126121af4d1db850feddfaf029d3b1df56df8e2eea47a802
Contents?: true
Size: 1.46 KB
Versions: 5
Compression:
Stored size: 1.46 KB
Contents
module LedgerSync module Adaptors module Test module Payment module Operations class Create < Operation::Create class Contract < LedgerSync::Adaptors::Contract schema do required(:ledger_id).value(:nil) required(:amount).filled(:integer) required(:currency).filled(:string) required(:customer).hash(Types::Reference) end end private def build build_customer_operation add_root_operation(self) end def operate response = adaptor.upsert( resource: 'payment', payload: local_resource_data ) resource.ledger_id = response.dig('id') success(response: response) rescue OAuth2::Error => e failure(e) end def build_customer_operation customer = Customer::Operations::Upsert.new( adaptor: adaptor, resource: resource.customer ) add_before_operation(customer) end def local_resource_data { 'amount': resource.amount, 'currency': resource.currency, 'customer_id': resource.customer.ledger_id } end end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems