Files
openfoodnetwork/app/services/orders/bulk_cancel_service.rb
2024-12-11 12:40:46 +11:00

29 lines
837 B
Ruby

# frozen_string_literal: true
module Orders
class BulkCancelService
def initialize(params, current_user)
@order_ids = params[:bulk_ids]
@current_user = current_user
@send_cancellation_email = params[:send_cancellation_email]
@restock_items = params[:restock_items]
end
def call
# rubocop:disable Rails/FindEach # .each returns an array, .find_each returns nil
editable_orders.where(id: @order_ids).each do |order|
order.send_cancellation_email = @send_cancellation_email
order.restock_items = @restock_items
order.cancel
end.tap { |orders| AmendBackorderJob.schedule_bulk_update_for(orders) }
# rubocop:enable Rails/FindEach
end
private
def editable_orders
Permissions::Order.new(@current_user).editable_orders
end
end
end