Sha256: f34c3b0802ae265c3f587e71de1ce4ec31eba4aa69efb5411d3ddc07adb5104d
Contents?: true
Size: 925 Bytes
Versions: 5
Compression:
Stored size: 925 Bytes
Contents
module Spree module Addresses class Update prepend Spree::ServiceModule::Base include Spree::Addresses::Helper attr_accessor :country def call(address:, address_params:) address_params[:country_id] ||= address.country_id address_params = fill_country_and_state_ids(address_params) address_params[:user_id] = address.user_id if address.user_id.present? if address&.editable? address.update(address_params) ? success(address) : failure(address) else if new_address(address_params).valid? address.destroy success(new_address) else failure(new_address) end end end private def new_address(address_params = {}) @new_address ||= ::Spree::Address.find_or_create_by(address_params.except(:id, :updated_at, :created_at)) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems