mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-18 04:39:14 +00:00
Fix params mangling issues in SubscriptionsController
This commit is contained in:
@@ -57,14 +57,13 @@ module Admin
|
||||
end
|
||||
|
||||
def unpause
|
||||
params[:subscription][:paused_at] = nil
|
||||
save_form_and_render
|
||||
save_form_and_render(true, unpause: true)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def save_form_and_render(render_issues = true)
|
||||
form = OrderManagement::Subscriptions::Form.new(@subscription, subscription_params)
|
||||
def save_form_and_render(render_issues = true, options = {})
|
||||
form = OrderManagement::Subscriptions::Form.new(@subscription, subscription_params, options)
|
||||
unless form.save
|
||||
render json: { errors: form.json_errors }, status: :unprocessable_entity
|
||||
return
|
||||
@@ -156,7 +155,7 @@ module Admin
|
||||
end
|
||||
|
||||
def subscription_params
|
||||
PermittedAttributes::Subscription.new(params).call
|
||||
@subscription_params ||= PermittedAttributes::Subscription.new(params).call
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,19 +11,21 @@ module OrderManagement
|
||||
delegate :json_errors, :valid?, to: :validator
|
||||
delegate :order_update_issues, to: :order_syncer
|
||||
|
||||
def initialize(subscription, subscription_params = {})
|
||||
def initialize(subscription, subscription_params = {}, options = {})
|
||||
@subscription = subscription
|
||||
@subscription_params = subscription_params
|
||||
@options = options
|
||||
@estimator = OrderManagement::Subscriptions::Estimator.new(subscription)
|
||||
@validator = OrderManagement::Subscriptions::Validator.new(subscription)
|
||||
@order_syncer = OrderSyncer.new(subscription)
|
||||
end
|
||||
|
||||
def save
|
||||
subscription.assign_attributes(subscription_params)
|
||||
subscription.assign_attributes(subscription_params.to_h)
|
||||
return false unless valid?
|
||||
|
||||
subscription.transaction do
|
||||
subscription.paused_at = nil if @options[:unpause]
|
||||
estimator.estimate!
|
||||
proxy_order_syncer.sync!
|
||||
order_syncer.sync!
|
||||
|
||||
Reference in New Issue
Block a user