Class: Decidim::CreateOmniauthRegistration
- Defined in:
- app/commands/decidim/create_omniauth_registration.rb
Overview
A command with all the business logic to create a user from omniauth
Instance Method Summary collapse
-
#call ⇒ Object
Executes the command.
-
#initialize(form, verified_email = nil) ⇒ CreateOmniauthRegistration
constructor
Public: Initializes the command.
Methods inherited from Command
call, #evaluate, #method_missing, #respond_to_missing?, #transaction
Constructor Details
#initialize(form, verified_email = nil) ⇒ CreateOmniauthRegistration
Public: Initializes the command.
form - A form object with the params.
9 10 11 12 |
# File 'app/commands/decidim/create_omniauth_registration.rb', line 9 def initialize(form, verified_email = nil) @form = form @verified_email = verified_email end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Decidim::Command
Instance Method Details
#call ⇒ Object
Executes the command. Broadcasts these events:
-
:ok when everything is valid.
-
:invalid if the form wasn’t valid and we couldn’t proceed.
Returns nothing.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/commands/decidim/create_omniauth_registration.rb', line 20 def call verify_oauth_signature! begin if existing_identity user = existing_identity.user verify_user_confirmed(user) return broadcast(:ok, user) end return broadcast(:invalid) if form.invalid? transaction do create_or_find_user @identity = create_identity end trigger_omniauth_registration broadcast(:ok, @user) rescue ActiveRecord::RecordInvalid => e broadcast(:error, e.record) end end |