Sha256: 68684c249206bf696e0ced4b40cc70bf382fbd6d354aa8681c0635f00d5b9334

Contents?: true

Size: 1.06 KB

Versions: 8

Compression:

Stored size: 1.06 KB

Contents

require "monban/use_case/base"

require "getto/params"

module Monban
  module UseCase
    module Account
      class Admin < Base

        initialize_with(
          time: [:now],
          repository: [
            :transaction,
            :reset_password_email_account,
            :insert_account,
            :update_roles,
            :update_reset_password_email,
          ],

          admin_email: String,
          admin_roles: Array,
        )

        def register
          repository.transaction do
            unless account_id = repository.reset_password_email_account(email: admin_email)
              account_id = repository.insert_account(now: time.now)
            end

            repository.update_roles(
              account_id: account_id,
              roles: admin_roles,
              now: time.now,
            )

            repository.update_reset_password_email(
              account_id: account_id,
              email: admin_email,
              now: time.now,
            )

            nil
          end
        end

      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
monban-core-1.2.4 lib/monban/use_case/account/admin.rb
monban-core-1.2.3 lib/monban/use_case/account/admin.rb
monban-core-1.2.2 lib/monban/use_case/account/admin.rb
monban-core-1.1.0 lib/monban/use_case/account/admin.rb
monban-core-1.0.3 lib/monban/use_case/account/admin.rb
monban-core-1.0.2 lib/monban/use_case/account/admin.rb
monban-core-1.0.0 lib/monban/use_case/account/admin.rb
monban-core-0.1.0 lib/monban/use_case/account/admin.rb