Module: LedgerSync::QuickBooksOnline::Operation::Mixin::InstanceMethods
- Defined in:
- lib/ledger_sync/quickbooks_online/operation.rb
Instance Method Summary collapse
- #deserialized_resource(response:) ⇒ Object
- #ledger_resource_path ⇒ Object
- #ledger_resource_type_for_path ⇒ Object
- #perform ⇒ Object
- #quickbooks_online_resource_type ⇒ Object
- #response_to_operation_result(response:) ⇒ Object
Instance Method Details
#deserialized_resource(response:) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 13 def deserialized_resource(response:) deserializer.deserialize( hash: response.body[quickbooks_online_resource_type.to_s.camelize], resource: resource ) end |
#ledger_resource_path ⇒ Object
20 21 22 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 20 def ledger_resource_path @ledger_resource_path ||= "#{ledger_resource_type_for_path}/#{resource.ledger_id}" end |
#ledger_resource_type_for_path ⇒ Object
24 25 26 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 24 def ledger_resource_type_for_path quickbooks_online_resource_type.tr('_', '') end |
#perform ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 44 def perform super rescue LedgerSync::Error::OperationError, OAuth2::Error => e failure(e) ensure client.update_secrets_in_dotenv end |
#quickbooks_online_resource_type ⇒ Object
52 53 54 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 52 def quickbooks_online_resource_type @quickbooks_online_resource_type ||= client.class.ledger_resource_type_for(resource_class: resource.class) end |
#response_to_operation_result(response:) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ledger_sync/quickbooks_online/operation.rb', line 28 def response_to_operation_result(response:) if response.success? success( resource: deserialized_resource(response: response), response: response ) else failure( Error::OperationError.new( operation: self, response: response ) ) end end |