Skip to content

Repository

jwtlib.repository

UserRepository: Persistence layer for authentication

This module defines the MongoDB-backed repository for managing user records, including creation, lookup, and credential verification.

UserRepository

UserRepository()

Bases: BaseRepository[User]

authenticate_user async

authenticate_user(user_auth: LoginRequest) -> Optional[dict]

Verify user credentials and prepare a login response.

Parameters:

Name Type Description Default
user_auth LoginRequest

Login credentials.

required

Returns:

Type Description
Optional[dict]

A dictionary containing the access token and public user if successful,

Optional[dict]

otherwise None.

create async

create(user_create: RegisterRequest) -> PublicUser

Create a new user record.

Parameters:

Name Type Description Default
user_create RegisterRequest

Registration data including prospective password.

required

Returns:

Type Description
PublicUser

A PublicUser representation of the created user.

get_active_users async

get_active_users(skip: int = 0, limit: int = 100) -> List[User]

List all active users with pagination.

Parameters:

Name Type Description Default
skip int

Number of records to skip.

0
limit int

Maximum number of records to return.

100

Returns:

Type Description
List[User]

A list of active User documents.

get_by_email async

get_by_email(email: str) -> Optional[User]

Retrieve a user by their unique email address.

Parameters:

Name Type Description Default
email str

The email address to search for.

required

Returns:

Type Description
Optional[User]

The User document if found, otherwise None.

get_by_username async

get_by_username(username: str) -> Optional[User]

Retrieve a user by their unique username.

Parameters:

Name Type Description Default
username str

The username to search for.

required

Returns:

Type Description
Optional[User]

The User document if found, otherwise None.