From 831aa3aae0953f7350e22a4027f1e7dba646bb9e Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 14 Jun 2022 14:50:55 +1000 Subject: [PATCH] Simplify ProductImagesController --- .../api/v0/product_images_controller.rb | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/controllers/api/v0/product_images_controller.rb b/app/controllers/api/v0/product_images_controller.rb index fbceddb4fe..b752755a10 100644 --- a/app/controllers/api/v0/product_images_controller.rb +++ b/app/controllers/api/v0/product_images_controller.rb @@ -6,21 +6,19 @@ module Api respond_to :json def update_product_image - @product = Spree::Product.find(params[:product_id]) + product = Spree::Product.find(params[:product_id]) authorize! :update, @product - if @product.images.first.nil? - @image = Spree::Image.create( - attachment: params[:file], - viewable_id: @product.master.id, - viewable_type: 'Spree::Variant' - ) - render json: @image, serializer: ImageSerializer, status: :created - else - @image = @product.images.first - @image.update(attachment: params[:file]) - render json: @image, serializer: ImageSerializer, status: :ok - end + image = product.images.first || Spree::Image.new( + viewable_id: product.master.id, + viewable_type: 'Spree::Variant' + ) + + success_status = image.persisted? ? :ok : :created + + image.update(attachment: params[:file]) + + render json: image, serializer: ImageSerializer, status: success_status end end end