diff --git a/app/controllers/qbo_controller.rb b/app/controllers/qbo_controller.rb index 18a0ee5..18f8d28 100644 --- a/app/controllers/qbo_controller.rb +++ b/app/controllers/qbo_controller.rb @@ -75,8 +75,9 @@ class QboController < ApplicationController entities = data['eventNotifications'][0]['dataChangeEvent']['entities'] entities.each do |entity| - puts entity['name'] - puts entity['id'] + if entity['name'].eql? "Customer" + Customer.sync(entity['id'].to_i) + end end # The webhook doesn't require a response but let's make sure diff --git a/app/models/customer.rb b/app/models/customer.rb index f79e81e..64b3882 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -140,6 +140,26 @@ class Customer < ActiveRecord::Base end end + # proforms a bruteforce sync operation + # This needs to be simplified + def self.sync(id) + service = Qbo.get_base(:customer).service + + customer = service.find_by_id(id) + qbo_customer = Customer.find_or_create_by(id: customer.id) + if customer.active? + if not qbo_customer.name.eql? customer.display_name + qbo_customer.name = customer.display_name + qbo_customer.id = customer.id + qbo_customer.save_without_push + end + else + if not qbo_customer.new_record? + qbo_customer.delete + end + end + end + # Push the updates def save_with_push begin