Sha256: c3fcb2ffc4bd68fce88a4f6c48128bfb30c333d4411f65729194ad41ec5058ff
Contents?: true
Size: 1.14 KB
Versions: 5
Compression:
Stored size: 1.14 KB
Contents
module LedgerSync module Adaptors module QuickBooksOnline module Customer module Operations class Create < Operation::Create class Contract < LedgerSync::Adaptors::Contract params do required(:ledger_id).value(:nil) required(:email).maybe(:string) required(:name).filled(:string) required(:phone_number).maybe(:string) end end private def operate response = adaptor.upsert( resource: 'customer', payload: local_resource_data ) resource.ledger_id = response.dig('Id') success(response: response) end def local_resource_data { 'DisplayName': resource.name, "PrimaryPhone": { "FreeFormNumber": resource.phone_number }, "PrimaryEmailAddr": { "Address": resource.email } } end end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems