Move logic for updating a user into a service class
This commit is contained in:
@@ -43,28 +43,8 @@ class UsersController < ApplicationController
|
||||
user = User.where(username_lower: params[:username].downcase).first
|
||||
guardian.ensure_can_edit!(user)
|
||||
json_result(user, serializer: UserSerializer) do |u|
|
||||
|
||||
website = params[:website]
|
||||
if website
|
||||
website = "http://" + website unless website =~ /^http/
|
||||
end
|
||||
|
||||
u.bio_raw = params[:bio_raw] || u.bio_raw
|
||||
u.name = params[:name] || u.name
|
||||
u.website = website || u.website
|
||||
u.digest_after_days = params[:digest_after_days] || u.digest_after_days
|
||||
u.auto_track_topics_after_msecs = params[:auto_track_topics_after_msecs].to_i if params[:auto_track_topics_after_msecs]
|
||||
u.new_topic_duration_minutes = params[:new_topic_duration_minutes].to_i if params[:new_topic_duration_minutes]
|
||||
u.title = params[:title] || u.title if guardian.can_grant_title?(u)
|
||||
|
||||
[:email_digests, :email_always, :email_direct, :email_private_messages,
|
||||
:external_links_in_new_tab, :enable_quoting, :dynamic_favicon].each do |i|
|
||||
if params[i].present?
|
||||
u.send("#{i.to_s}=", params[i] == 'true')
|
||||
end
|
||||
end
|
||||
|
||||
u.save ? u : nil
|
||||
updater = UserUpdater.new(user)
|
||||
updater.update(params)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user