Class: Core::Services::Accounts

Inherits:
Base
  • Object
show all
Includes:
Singleton
Defined in:
lib/core/services/accounts.rb

Overview

Service managing user accounts.

Author:

Instance Method Summary collapse

Methods inherited from Base

#bad_request_err, #forbidden_err, #require_parameters, #unknown_err

Instance Method Details

#get_by_credentials(username: nil, password: nil, **ignored) ⇒ Core::Decorators::Account

Gets and authenticates an account using its credentials.

Parameters:

  • username (String) (defaults to: nil)

    the nickname the user chose at account creation.

  • password (String) (defaults to: nil)

    the password, in clear, to identify the user with.

Returns:

Raises:



34
35
36
37
38
39
40
41
# File 'lib/core/services/accounts.rb', line 34

def get_by_credentials(username: nil, password: nil, **ignored)
  require_parameters password: password
   = get_by_username(username: username)

  raise forbidden_err(field: 'password', error: 'wrong') unless .has_password?(password)

  
end

#get_by_username(username: nil, **ignored) ⇒ Core::Models::Account

Gets an account given the nickname of the user.

Parameters:

  • username (String) (defaults to: nil)

    the nickname the user chose at account creation.

Returns:

Raises:



17
18
19
20
21
22
23
# File 'lib/core/services/accounts.rb', line 17

def get_by_username(username: nil, **ignored)
  require_parameters username: username
   = Core::Models::Account.find_by(username: username)
  raise unknown_err(field: 'username') if .nil?

  Core::Decorators::Account.new()
end