Class: SpreeCmCommissioner::Imports::Orders::Base
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Imports::Orders::Base
- Defined in:
- app/services/spree_cm_commissioner/imports/orders/base.rb
Instance Attribute Summary collapse
-
#fail_row_numbers ⇒ Object
readonly
Returns the value of attribute fail_row_numbers.
-
#import_order_id ⇒ Object
readonly
Returns the value of attribute import_order_id.
Instance Method Summary collapse
- #call ⇒ Object
- #cleaned_value(value) ⇒ Object
- #fetch_content ⇒ Object
- #import_order ⇒ Object
-
#initialize(import_order_id:) ⇒ Base
constructor
A new instance of Base.
- #record_failure(row_number) ⇒ Object
- #save_fail_rows ⇒ Object
- #update_import_status_when_finish(status) ⇒ Object
- #update_import_status_when_start(status) ⇒ Object
Constructor Details
#initialize(import_order_id:) ⇒ Base
Returns a new instance of Base.
9 10 11 12 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 9 def initialize(import_order_id:) @import_order_id = import_order_id @fail_row_numbers = [] end |
Instance Attribute Details
#fail_row_numbers ⇒ Object (readonly)
Returns the value of attribute fail_row_numbers.
7 8 9 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 7 def fail_row_numbers @fail_row_numbers end |
#import_order_id ⇒ Object (readonly)
Returns the value of attribute import_order_id.
7 8 9 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 7 def import_order_id @import_order_id end |
Instance Method Details
#call ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 14 def call update_import_status_when_start(:progress) import_orders save_fail_rows update_import_status_when_finish(:done) rescue StandardError => e update_import_status_when_finish(:failed) raise e end |
#cleaned_value(value) ⇒ Object
61 62 63 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 61 def cleaned_value(value) value.to_s.gsub(/\s+/, '') end |
#fetch_content ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 44 def fetch_content temp_file = Tempfile.new(['import', '.csv'], binmode: true) begin import_order.imported_file.download do |chunk| temp_file.write(chunk) end temp_file.close temp_file.path rescue StandardError temp_file.close temp_file.unlink raise end end |
#import_order ⇒ Object
32 33 34 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 32 def import_order @import_order ||= SpreeCmCommissioner::Imports::ImportOrder.find(import_order_id) end |
#record_failure(row_number) ⇒ Object
28 29 30 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 28 def record_failure(row_number) @fail_row_numbers << row_number end |
#save_fail_rows ⇒ Object
24 25 26 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 24 def save_fail_rows import_order.update!(preferred_fail_rows: @fail_row_numbers.join(', ')) unless @fail_row_numbers.empty? end |
#update_import_status_when_finish(status) ⇒ Object
40 41 42 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 40 def update_import_status_when_finish(status) import_order.update(status: status, finished_at: Time.zone.now) end |
#update_import_status_when_start(status) ⇒ Object
36 37 38 |
# File 'app/services/spree_cm_commissioner/imports/orders/base.rb', line 36 def update_import_status_when_start(status) import_order.update(status: status, started_at: Time.zone.now) end |