Class: ImportDocumentJob
- Inherits:
-
ApplicationJob
- Object
- ApplicationJob
- ImportDocumentJob
- Defined in:
- app/jobs/import_document_job.rb
Overview
ImportDocumentJob class
Instance Method Summary collapse
Instance Method Details
#perform(import_document) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/jobs/import_document_job.rb', line 7 def perform(import_document) document = Document.find_or_create_by(friendlier_id: import_document.friendlier_id) # Set the geom document.set_geometry # Update document with import data document_data = import_document.to_hash publication_state = document_data[:json_attributes]["b1g_publication_state_s"] document_data[:json_attributes].delete("b1g_publication_state_s") document_data.delete(:publication_state) if document.update(document_data) # Handle state transition separately if publication_state.present? document.publication_state = publication_state document.save end import_document.state_machine.transition_to!(:success) else import_document.state_machine.transition_to!(:failed, "Failed - #{document.errors.inspect}") end rescue => e logger.debug("Error: #{e}") import_document.state_machine.transition_to!(:failed, "Error - #{e.inspect}") end |