Module: RailsJwtAuth::Invitable::ClassMethods

Defined in:
app/models/concerns/rails_jwt_auth/invitable.rb

Instance Method Summary collapse

Instance Method Details

#invite!(attributes = {}) ⇒ user

Creates an user and sends an invitation to him. If the user is already invited and pending of completing registration the invitation is resent by email. If the user is already registered, it returns the user with a :taken on the email field.

Parameters:

  • attributes (Hash) (defaults to: {})

    Hash containing user’s attributes to be filled. Must contain an email key.

Returns:

  • (user)

    The user created or found by email.

Raises:

  • (ArgumentError)


34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/models/concerns/rails_jwt_auth/invitable.rb', line 34

def invite!(attributes={})
  attrs = ActiveSupport::HashWithIndifferentAccess.new(attributes.to_h)
  auth_field = RailsJwtAuth.auth_field_name
  auth_attribute = attrs.delete(auth_field)

  raise ArgumentError unless auth_attribute

  record = RailsJwtAuth.model.find_or_initialize_by(auth_field => auth_attribute)
  record.assign_attributes(attrs)

  record.invite!
  record
end