Sha256: 37a6c27c8dc1dfbeadc12948693a9eb2dc1b2103b5b61bd7731864e6debdd127

Contents?: true

Size: 958 Bytes

Versions: 8

Compression:

Stored size: 958 Bytes

Contents

module GraphqlDevise
  module Mutations
    class SendPasswordReset < Base
      argument :email,        String, required: true, prepare: ->(email, _) { email.downcase }
      argument :redirect_url, String, required: true

      def resolve(email:, redirect_url:)
        resource = controller.find_resource(:uid, email)

        if resource
          yield resource if block_given?
          resource.send_reset_password_instructions(
            email:         email,
            provider:      'email',
            redirect_url:  redirect_url,
            template_path: ['graphql_devise/mailer']
          )

          if resource.errors.empty?
            { authenticatable: resource }
          else
            raise_user_error_list(I18n.t('graphql_devise.invalid_resource'), errors: resource.errors.full_messages)
          end
        else
          raise_user_error(I18n.t('graphql_devise.user_not_found'))
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
graphql_devise-0.11.0 lib/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.10.1 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.10.0 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.9.2 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.9.1 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.9.0 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.8.1 app/graphql/graphql_devise/mutations/send_password_reset.rb
graphql_devise-0.8.0 app/graphql/graphql_devise/mutations/send_password_reset.rb