Class: Catalog::UpdateCatalog

Inherits:
BaseService show all
Defined in:
app/services/catalog/update_catalog.rb

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Methods inherited from BaseService

#log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger

Constructor Details

#initialize(options = {}) ⇒ UpdateCatalog

Returns a new instance of UpdateCatalog.



8
9
10
11
12
# File 'app/services/catalog/update_catalog.rb', line 8

def initialize(options={})
  @synchronize_catalog_price_service = options[:synchronize_catalog_price_service] || Catalog::SynchronizeCatalogPrices.new
  @validate_catalog_items_service = options[:validate_catalog_items] || Catalog::ValidateCatalogItems.new
  super(options)
end

Instance Method Details

#process(catalog, catalog_params) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/services/catalog/update_catalog.rb', line 14

def process(catalog, catalog_params)
  messages = []
  attributes_before = catalog.attributes

  if catalog.update(catalog_params)
    messages << "Catalog #{catalog.id} #{catalog.name} updated"

    handle_catalog_item_constraints(catalog, attributes_before, messages)

    Result.new(catalog: catalog, catalog_updated: true, messages: messages)
  else
    Result.new(catalog: catalog, catalog_updated: false, messages: catalog.errors.full_messages)
  end
end