Skip to content
Snippets Groups Projects
Commit ef6a4240 authored by James Lopez's avatar James Lopez
Browse files

update notification settings, fix api specs

parent 04bb82c8
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -10,7 +10,7 @@ module Users
def execute(skip_authorization: false, &block)
assign_attributes(skip_authorization, &block)
 
if @user.save || !@user.changed?
if @user.save || !@user.changed? && @user.errors.empty?
success
else
error(@user.errors.full_messages.uniq.join('. '))
Loading
Loading
Loading
Loading
@@ -34,7 +34,10 @@ module API
notification_setting.transaction do
new_notification_email = params.delete(:notification_email)
 
current_user.update(notification_email: new_notification_email) if new_notification_email
if new_notification_email
::Users::UpdateService.new(current_user, current_user, notification_email: new_notification_email).execute
end
notification_setting.update(declared_params(include_missing: false))
end
rescue ArgumentError => e # catch level enum error
Loading
Loading
Loading
Loading
@@ -156,7 +156,9 @@ module API
 
user_params[:password_expires_at] = Time.now if user_params[:password].present?
 
if user.update_attributes(user_params.except(:extern_uid, :provider))
result = ::Users::UpdateService.new(current_user, user, user_params.except(:extern_uid, :provider)).execute
if result[:status] == :success
present user, with: Entities::UserPublic
else
render_validation_error!(user)
Loading
Loading
Loading
Loading
@@ -374,7 +374,6 @@ describe API::Users do
 
expect(response).to have_http_status(200)
expect(user.reload.password_expires_at).to be <= Time.now
expect(AuditEvent.count).to eq(1)
end
 
it "updates user with organization" do
Loading
Loading
@@ -406,7 +405,6 @@ describe API::Users do
put api("/users/#{user.id}", admin), email: 'new@email.com'
expect(response).to have_http_status(200)
expect(user.reload.notification_email).to eq('new@email.com')
expect(AuditEvent.count).to eq(1)
end
 
it 'updates user with his own username' do
Loading
Loading
@@ -651,7 +649,7 @@ describe API::Users do
email_attrs = attributes_for :email
expect do
post api("/users/#{user.id}/emails", admin), email_attrs
end.to change { user.emails.count }.by(1).and change { AuditEvent.count }.by(1)
end.to change { user.emails.count }.by(1)
end
 
it "returns a 400 for invalid ID" do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment