From 81482683cf2c5d42e7560179fced1808f7fbf956 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Wed, 17 Jul 2019 10:33:38 +0100 Subject: [PATCH] Extract method in subs controller --- .../admin/subscriptions_controller.rb | 35 +++++++++---------- .../admin/subscriptions_controller_spec.rb | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/controllers/admin/subscriptions_controller.rb b/app/controllers/admin/subscriptions_controller.rb index a5d4f2aa54..75225ee0cc 100644 --- a/app/controllers/admin/subscriptions_controller.rb +++ b/app/controllers/admin/subscriptions_controller.rb @@ -33,21 +33,11 @@ module Admin end def create - form = SubscriptionForm.new(@subscription, params[:subscription]) - if form.save - render_as_json @subscription - else - render json: { errors: form.json_errors }, status: :unprocessable_entity - end + save_form_and_render(false) end def update - form = SubscriptionForm.new(@subscription, params[:subscription]) - if form.save - render_as_json @subscription, order_update_issues: form.order_update_issues - else - render json: { errors: form.json_errors }, status: :unprocessable_entity - end + save_form_and_render end def cancel @@ -69,16 +59,25 @@ module Admin def unpause params[:subscription][:paused_at] = nil - form = SubscriptionForm.new(@subscription, params[:subscription]) - if form.save - render_as_json @subscription, order_update_issues: form.order_update_issues - else - render json: { errors: form.json_errors }, status: :unprocessable_entity - end + save_form_and_render end private + def save_form_and_render(render_issues = true) + form = SubscriptionForm.new(@subscription, params[:subscription]) + unless form.save + render json: { errors: form.json_errors }, status: :unprocessable_entity + return + end + + if render_issues + render_as_json @subscription, order_update_issues: form.order_update_issues + else + render_as_json @subscription + end + end + def permissions return @permissions unless @permissions.nil? @permissions = OpenFoodNetwork::Permissions.new(spree_current_user) diff --git a/spec/controllers/admin/subscriptions_controller_spec.rb b/spec/controllers/admin/subscriptions_controller_spec.rb index d3ea76dcd2..445ec70ff7 100644 --- a/spec/controllers/admin/subscriptions_controller_spec.rb +++ b/spec/controllers/admin/subscriptions_controller_spec.rb @@ -583,7 +583,7 @@ describe Admin::SubscriptionsController, type: :controller do end context 'json' do - let(:params) { { format: :json, id: subscription.id } } + let(:params) { { format: :json, id: subscription.id, subscription: {} } } context 'as a regular user' do it 'redirects to unauthorized' do