Class: Jobs::MergeUser
Instance Method Summary collapse
Methods inherited from Base
acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately
Instance Method Details
#execute(args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/jobs/regular/merge_user.rb', line 5 def execute(args) target_user_id = args[:target_user_id] current_user_id = args[:current_user_id] user = User.find_by(id: args[:user_id]) target_user = User.find_by(id: args[:target_user_id]) current_user = User.find_by(id: args[:current_user_id]) guardian = Guardian.new(current_user) serializer_opts = { root: false, scope: guardian } if user = UserMerger.new(user, target_user, current_user).merge! user_json = AdminDetailedUserSerializer.new(user, serializer_opts).as_json ::MessageBus.publish "/merge_user", { success: "OK" }.merge(merged: true, user: user_json), user_ids: [current_user.id] else ::MessageBus.publish "/merge_user", { failed: "FAILED" }.merge( user: AdminDetailedUserSerializer.new(@user, serializer_opts).as_json, ), user_ids: [current_user.id] end end |