Class: Workarea::DataFile::Import
Instance Method Summary
collapse
Methods included from Operation
#complete?, #file_type, #format, #mime_type, #model_class, #name, #sample_file_content, #samples, #tempfile
#releasable?
add_worker, assert_valid_config!, async, caching_classes?, disable, enable, inline, #run_callbacks, workers, workers_list
Instance Method Details
#error? ⇒ Boolean
32
33
34
|
# File 'app/models/workarea/data_file/import.rb', line 32
def error?
error_message.present?
end
|
#failed ⇒ Object
36
37
38
|
# File 'app/models/workarea/data_file/import.rb', line 36
def failed
total - succeeded
end
|
#failure? ⇒ Boolean
28
29
30
|
# File 'app/models/workarea/data_file/import.rb', line 28
def failure?
!successful?
end
|
#file_name ⇒ Object
20
21
22
|
# File 'app/models/workarea/data_file/import.rb', line 20
def file_name
super.presence || file_type&.upcase
end
|
#log(index, instance) ⇒ Object
55
56
57
58
59
60
61
62
63
64
|
# File 'app/models/workarea/data_file/import.rb', line 55
def log(index, instance)
self.total += 1
if instance.errors.blank? && instance.persisted?
self.succeeded += 1
else
id = instance.new_record? ? index : instance.id
file_errors[id.to_s] = instance.errors.as_json
end
end
|
#process! ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'app/models/workarea/data_file/import.rb', line 40
def process!
set(started_at: Time.current)
assert_valid_file_type
run_callbacks(:process) { format.import! }
rescue Exception => e
self.error_type = e.class
self.error_message = e.message
raise e
ensure
self.completed_at = Time.current
save!
end
|
#successful? ⇒ Boolean
24
25
26
|
# File 'app/models/workarea/data_file/import.rb', line 24
def successful?
!error? && total == succeeded
end
|