Sha256: 35dea17481b76bc3a44a552d5b8c6a4757819a2a6f83785d03815efd32164ee9
Contents?: true
Size: 1.18 KB
Versions: 102
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module Spree class OrderUpdateAttributes # @param order [Order] existing (persisted) order # @param attributes [Hash] attributes which are assigned to the new order. # These attributes should already have been filtered. # * :payments_attributes attributes def initialize(order, attributes, request_env: nil) @order = order @attributes = attributes.dup @payments_attributes = @attributes.delete(:payments_attributes) || [] @request_env = request_env end # Assign the attributes to the order and save the order # @return true if saved, otherwise false and errors will be set on the order def apply order.validate_payments_attributes(@payments_attributes) assign_order_attributes assign_payments_attributes order.save end private attr_reader :attributes, :payments_attributes, :order def assign_order_attributes order.assign_attributes attributes end def assign_payments_attributes @payments_attributes.each do |payment_attributes| PaymentCreate.new(order, payment_attributes, request_env: @request_env).build end end end end
Version data entries
102 entries across 102 versions & 2 rubygems
Version | Path |
---|---|
solidus_core-2.6.0 | app/models/spree/order_update_attributes.rb |
solidus_core-2.6.0.rc1 | app/models/spree/order_update_attributes.rb |