mirror of
https://github.com/rickbarrette/redmine_qbo.git
synced 2026-04-02 16:21:58 -04:00
Refactor: Update QBO connection handling to use QboConnectionService for consistency across services and controllers
This commit is contained in:
@@ -215,7 +215,7 @@ class Customer < ActiveRecord::Base
|
||||
def pull
|
||||
begin
|
||||
raise Exception unless self.id
|
||||
qbo = Qbo.first
|
||||
qbo = QboConnectionService.current!
|
||||
@details = qbo.perform_authenticated_request do |access_token|
|
||||
service = Quickbooks::Service::Customer.new(company_id: qbo.realm_id, access_token: access_token)
|
||||
service.fetch_by_id(self.id)
|
||||
|
||||
@@ -60,7 +60,7 @@ class Estimate < ActiveRecord::Base
|
||||
log "Pulling details for estimate ##{self.id}..."
|
||||
begin
|
||||
raise Exception unless self.id
|
||||
qbo = Qbo.first
|
||||
qbo = QboConnectionService.current!
|
||||
@details = qbo.perform_authenticated_request do |access_token|
|
||||
service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token)
|
||||
service(:estimate).fetch_by_id(self.id)
|
||||
|
||||
@@ -12,24 +12,35 @@ class Qbo < ActiveRecord::Base
|
||||
|
||||
include QuickbooksOauth
|
||||
include Redmine::I18n
|
||||
|
||||
validate :single_record_only, on: :create
|
||||
|
||||
# Updates last sync time stamp
|
||||
def self.update_time_stamp
|
||||
date = DateTime.now
|
||||
log "Updating QBO timestamp to #{date}"
|
||||
qbo = Qbo.first
|
||||
qbo = QboConnectionService.current!
|
||||
qbo.last_sync = date
|
||||
qbo.save
|
||||
end
|
||||
|
||||
# Returns the last sync time formatted for display. If no sync has occurred, returns a default message.
|
||||
def self.last_sync
|
||||
format_time(Qbo.first.last_sync)
|
||||
qbo = QboConnectionService.current!
|
||||
return t(:label_qbo_never_synced) unless qbo&.last_sync
|
||||
format_time(qbo.last_sync)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Logs a message with a QBO-specific prefix for easier identification in the logs.
|
||||
def self.log(msg)
|
||||
logger.info "[QBO] #{msg}"
|
||||
end
|
||||
|
||||
# Validates that only one QBO connection record exists in the database. Adds an error if a record already exists.
|
||||
def single_record_only
|
||||
errors.add(:base, "Only one QBO connection allowed") if Qbo.exists?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user