Class: SpreeCmCommissioner::VendorPlaces::BulkCreate
- Defined in:
- app/services/spree_cm_commissioner/vendor_places/bulk_create.rb
Constant Summary
Constants inherited from Base
SpreeCmCommissioner::VendorPlaces::Base::ALLOWED_PLACE_TYPES
Instance Method Summary collapse
-
#call(vendor:, place_ids:, place_type:, description: nil, max_count: 10, location: nil) ⇒ Object
rubocop:disable Metrics/ParameterLists.
Instance Method Details
#call(vendor:, place_ids:, place_type:, description: nil, max_count: 10, location: nil) ⇒ Object
rubocop:disable Metrics/ParameterLists
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/services/spree_cm_commissioner/vendor_places/bulk_create.rb', line 24 def call(vendor:, place_ids:, place_type:, description: nil, max_count: 10, location: nil) # rubocop:disable Metrics/ParameterLists = validate_inputs!(place_ids: place_ids, place_type: place_type, max_count: max_count, location: location) return failure(nil, ) if created_vendor_places = [] ActiveRecord::Base.transaction do place_ids.each do |place_id| vendor_place = build_vendor_place( vendor: vendor, place_id: place_id, place_type: place_type, description: description, location: location ) vendor_place.save! created_vendor_places << vendor_place end end success(created_vendor_places) rescue ActiveRecord::RecordInvalid => e failure(nil, e.record.errors..to_sentence) end |