Class: Panda::Core::InviteUserService
- Inherits:
-
Services::BaseService
- Object
- Services::BaseService
- Panda::Core::InviteUserService
- Defined in:
- app/services/panda/core/invite_user_service.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(email:, name:, invited_by:, admin: false) ⇒ InviteUserService
constructor
A new instance of InviteUserService.
Methods inherited from Services::BaseService
Constructor Details
#initialize(email:, name:, invited_by:, admin: false) ⇒ InviteUserService
Returns a new instance of InviteUserService.
6 7 8 9 10 11 |
# File 'app/services/panda/core/invite_user_service.rb', line 6 def initialize(email:, name:, invited_by:, admin: false) @email = email.to_s.downcase.strip @name = name.to_s.strip @invited_by = invited_by @admin = admin end |
Instance Method Details
#call ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/services/panda/core/invite_user_service.rb', line 13 def call return failure(["Email is required"]) if @email.blank? return failure(["Name is required"]) if @name.blank? existing_user = User.find_by(email: @email) return failure(["A user with this email already exists"]) if existing_user user = User.new( email: @email, name: @name, admin: @admin, enabled: true ) unless user.save return failure(user.errors.) end user.invite!(invited_by: @invited_by) UserActivity.log!( user: @invited_by, action: "invited_user", resource: user, metadata: {invited_email: @email, admin: @admin} ) success(user: user) end |