Class: UsersModel

UsersModel(id, firstName, lastName, role, email, password, phone, dob, deleted, authenticationKey)

Represents a user stored in the users table.

Constructor

new UsersModel(id, firstName, lastName, role, email, password, phone, dob, deleted, authenticationKey)

Parameters:
Name Type Description
id number | null

User identifier.

firstName string

User's first name.

lastName string

User's last name.

role string | number

User role.

email string

User email address.

password string

User password hash.

phone string

User phone number.

dob string | Date

User date of birth.

deleted number

Soft-delete flag.

authenticationKey string

User authentication key.

Source:

Classes

UsersModel

Methods

(static) create(user) → {Promise.<OkPacket>}

Create a user with a generated identifier.

Parameters:
Name Type Description
user UsersModel

User to create.

Source:
Returns:

Database result.

Type
Promise.<OkPacket>

(static) createWithExistingID(user) → {Promise.<OkPacket>}

Create a user with a caller-provided identifier.

Parameters:
Name Type Description
user UsersModel

User to create.

Source:
Returns:

Database result.

Type
Promise.<OkPacket>

(static) delete(id) → {Promise.<OkPacket>}

Delete a user by identifier.

Parameters:
Name Type Description
id number

User identifier.

Source:
Returns:

Database result.

Type
Promise.<OkPacket>

(async, static) getAll() → {Promise.<Array.<UsersModel>>}

Retrieve all non-deleted users.

Source:
Returns:

Active users.

Type
Promise.<Array.<UsersModel>>

(async, static) getById(id) → {Promise.<UsersModel>}

Retrieve a user by identifier.

Parameters:
Name Type Description
id number

User identifier.

Source:
Throws:

"not found" when no user matches the identifier.

Type
string
Returns:

Matching user.

Type
Promise.<UsersModel>

(async, static) getBySearch(term) → {Promise.<Array.<UsersModel>>}

Search non-deleted users by name or email.

Parameters:
Name Type Description
term string

Search term.

Source:
Returns:

Matching users.

Type
Promise.<Array.<UsersModel>>

(async, static) getByUsername(username) → {Promise.<UsersModel>}

Retrieve an active user by email address used as the login name.

Parameters:
Name Type Description
username string

Login email address.

Source:
Throws:

"not found" when no user matches the username.

Type
string
Returns:

Matching user.

Type
Promise.<UsersModel>

(async, static) list(optionsopt) → {Promise.<{users: Array.<UsersModel>, total: number}>}

Search and sort non-deleted users server-side.

Parameters:
Name Type Attributes Description
options Object <optional>

Search and sort options.

Properties
Name Type Attributes Description
searchTerm string <optional>

Optional search term for name/email.

role string <optional>

Optional exact role to filter by (admin|trainer|member).

sortBy string <optional>

Column to sort by (first_name|last_name|email|role).

sortDir string <optional>

Sort direction (asc|desc).

page number <optional>

1-indexed page number for pagination.

pageSize number <optional>

Number of rows per page.

Source:
Returns:

Matching users and total match count.

Type
Promise.<{users: Array.<UsersModel>, total: number}>

(static) tableToModel(row) → {UsersModel}

Convert a database row into a UsersModel instance.

Parameters:
Name Type Description
row Object

Database row.

Source:
Returns:

Mapped user.

Type
UsersModel

(static) update(user) → {Promise.<OkPacket>}

Update an existing user.

Parameters:
Name Type Description
user UsersModel

User to update.

Source:
Returns:

Database result.

Type
Promise.<OkPacket>