summaryrefslogtreecommitdiff
path: root/app/services/members/create_service.rb
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2019-01-31 10:51:29 +0100
committerJames Lopez <james@jameslopez.es>2019-02-01 16:57:05 +0100
commitc75687b51924a481dd05cf00f9fc28a3d8fd7735 (patch)
tree8c02130c6478742aa29b1ddcded4a67b05eb5cf0 /app/services/members/create_service.rb
parentb49563c39fb6aaa610f7683f9bc2f76842a766b5 (diff)
downloadgitlab-ce-c75687b51924a481dd05cf00f9fc28a3d8fd7735.tar.gz
Update members service to cope with errors
Diffstat (limited to 'app/services/members/create_service.rb')
-rw-r--r--app/services/members/create_service.rb14
1 files changed, 12 insertions, 2 deletions
diff --git a/app/services/members/create_service.rb b/app/services/members/create_service.rb
index 714b8586737..cf710fef52b 100644
--- a/app/services/members/create_service.rb
+++ b/app/services/members/create_service.rb
@@ -19,9 +19,19 @@ module Members
current_user: current_user
)
- members.each { |member| after_execute(member: member) }
+ errors = []
- success
+ members.each do |member|
+ if member.errors.any?
+ errors << "#{member.user.username}: #{member.errors.full_messages.to_sentence}"
+ else
+ after_execute(member: member)
+ end
+ end
+
+ return success unless errors.any?
+
+ error(errors.to_sentence)
end
private