diff --git a/app/controllers/api/v1/bulk_actions_controller.rb b/app/controllers/api/v1/bulk_actions_controller.rb index b801011..ce94164 100644 --- a/app/controllers/api/v1/bulk_actions_controller.rb +++ b/app/controllers/api/v1/bulk_actions_controller.rb @@ -3,13 +3,13 @@ class Api::V1::BulkActionsController < Api::V1::BaseController def create if type_matches? - ::BulkActionsJob.perform_now( + result = ::BulkActionsJob.perform_now( user: current_user, params: permitted_params ) - + success_response( - data: nil, + data: result, message: 'Bulk action completed successfully', status: :created ) diff --git a/app/jobs/bulk_actions_job.rb b/app/jobs/bulk_actions_job.rb index 3f9db98..baccc19 100644 --- a/app/jobs/bulk_actions_job.rb +++ b/app/jobs/bulk_actions_job.rb @@ -18,6 +18,7 @@ def perform(account: nil, params:, user:) def bulk_update if @params[:type] == 'Contact' bulk_contact_update + { success_ids: [], failed_ids: [] } else bulk_remove_labels bulk_conversation_update @@ -35,11 +36,19 @@ def bulk_contact_update def bulk_conversation_update params = available_params(@params) + success_ids = [] + failed_ids = [] + records.each do |conversation| bulk_add_labels(conversation) bulk_snoozed_until(conversation) conversation.update!(params) if params + success_ids << conversation.display_id + rescue StandardError + failed_ids << conversation.display_id end + + { success_ids: success_ids, failed_ids: failed_ids } end def bulk_remove_labels