Sha256: b48cc77d70e0eccfe3729a8a278ddc8c6827fb651954dffe4c438ca7dc6172c9

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

require "monban/use_case/base"

require "getto/params"

module Monban
  module UseCase
    module Account
      module Change
        class Password < Base

          initialize_with(
            :error,
            repository: [
              :account_exists?,
            ],
            password: [:change],
          )

          def change(params)
            Getto::Params.new.validate(params) do |v|
              v.hash(
                account_id: v.integer{|val| param_error!(account_id: val) },
                password:   v.combine([v.string, v.not_empty]), # DO NOT LOGGING PASSWORD!!
              )
            end or param_error!(params: "FILTERED")

            repository.transaction do
              unless repository.account_exists?(account_id: params[:account_id])
                error.not_found! "account_id: #{params[:account_id]}"
              end

              self.password.change(
                account_id: params[:account_id],
                password:   params[:password],
              )
            end

            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/change/password.rb
monban-core-1.2.3 lib/monban/use_case/account/change/password.rb
monban-core-1.2.2 lib/monban/use_case/account/change/password.rb
monban-core-1.1.0 lib/monban/use_case/account/change/password.rb
monban-core-1.0.3 lib/monban/use_case/account/change/password.rb
monban-core-1.0.2 lib/monban/use_case/account/change/password.rb
monban-core-1.0.0 lib/monban/use_case/account/change/password.rb
monban-core-0.1.0 lib/monban/use_case/account/change/password.rb