Sha256: 8060bcd1de94c2a67ec3b05a9bd7534ea5a59a840a705e296b08363109c91706

Contents?: true

Size: 661 Bytes

Versions: 3

Compression:

Stored size: 661 Bytes

Contents

# frozen_string_literal: true

module DemoMode
  class AccountGenerationJob < DemoMode.base_job_name.constantize
    def perform(session)
      session.with_lock do
        persona = persona(session)
        raise "Unknown persona: #{session.persona_name}" if persona.blank?

        signinable = persona.generate!(variant: session.variant, password: session.signinable_password)
        session.update!(signinable: signinable)
      end
      raise "Failed to create signinable persona!" if session.signinable.blank?
    end

    private

    def persona(session)
      DemoMode.personas.find { |p| p.name.to_s == session.persona_name.to_s }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
demo_mode-1.2.3 app/jobs/demo_mode/account_generation_job.rb
demo_mode-1.2.2 app/jobs/demo_mode/account_generation_job.rb
demo_mode-1.2.1 app/jobs/demo_mode/account_generation_job.rb