Package com.io7m.idstore.server.controller.user

# Class IdUserLoginService

java.lang.Object
com.io7m.idstore.server.controller.user.IdUserLoginService

All Implemented Interfaces:
  `com.io7m.repetoir.core.RPServiceType`

public final class IdUserLoginService extends Object implements com.io7m.repetoir.core.RPServiceType
A service that handles the logic for user logins.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final record`
  `IdUserLoginService.IdUserLoggedIn`
  A record of a user logging in.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IdUserLoginService(IdServerClock inClock, IdServerStrings inStrings, IdSessionUserService inSessions, IdServerConfigurationService inConfigurations)`
  A service that handles the logic for user logins.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `description()`
  `IdUserLoginService.IdUserLoggedIn`
  `userLogin(IdDatabaseTransactionType transaction, UUID requestId, String username, String password, Map<String,String> metadata)`
  Try logging in.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### IdUserLoginService

    public IdUserLoginService(IdServerClock inClock, IdServerStrings inStrings, IdSessionUserService inSessions, IdServerConfigurationService inConfigurations)
    A service that handles the logic for user logins.
    Parameters:
      `inClock` - The clock
      `inStrings` - The string resources
      `inSessions` - A session service
      `inConfigurations` - A configuration service

- ## Method Details

  - ### userLogin

    public IdUserLoginService.IdUserLoggedIn userLogin(IdDatabaseTransactionType transaction, UUID requestId, String username, String password, Map<String,String> metadata) throws IdCommandExecutionFailure
    Try logging in. Create a new session if logging in succeeds, or raise an exception if the login cannot proceed for any reason (invalid credentials, banned user, etc).
    Parameters:
      `transaction` - A database transaction
      `requestId` - The ID of the request
      `username` - The username
      `password` - The password
      `metadata` - The request metadata
    Returns:
      A login record
    Throws:
      `IdCommandExecutionFailure` - On errors

  - ### description

    public String description()
    Specified by:
      `description` in interface `com.io7m.repetoir.core.RPServiceType`