Skip to main content

Class: abstract Model<T>

Defined in: models/model.ts:31

The base Model class that other classes are built off of. Contains universal properties and methods shared across various classes, such as queries.

Extended by

Type Parameters

T

T

Constructors

Constructor

new Model<T>(props): Model<T>

Defined in: models/model.ts:43

Creates an instance of the Model class

Parameters

props

T = {}

Contains the

Returns

Model<T>

Properties

attributes

attributes: T = {}

Defined in: models/model.ts:34


uuid

uuid: string

Defined in: models/model.ts:35


id

readonly static id: string

Defined in: models/model.ts:32

Accessors

id

Get Signature

get id(): string

Defined in: models/model.ts:249

Gets the ID

Returns

string

The ID property. Options include: "room" | "user" | "userRoom" | "invite" | "otp"


isNew

Get Signature

get isNew(): boolean

Defined in: models/model.ts:258

Checks if model is new

Returns

boolean

Returns boolean if uuid is missing from record

Methods

delete()

delete(): Promise<boolean>

Defined in: models/model.ts:78

Deletes a record

Returns

Promise<boolean>

a boolean: true if the record was deleted, false if it was not deleted


get()

get(name): T[keyof T]

Defined in: models/model.ts:267

Gets an attribute's value

Parameters

name

keyof T

Name of the attribute that is being retrieved

Returns

T[keyof T]

The attribute value being retrieved


save()

save(): Promise<boolean>

Defined in: models/model.ts:206

Save a record in DB

Returns

Promise<boolean>

true if the record was saved in the DB


serialize()

serialize(): IKeyValue

Defined in: models/model.ts:285

Create a response safe representation of the model's attributes Should normally be overridden in subclasses

Returns

IKeyValue

The attribute properties from the model + the uuid.


set()

set(name, value): void

Defined in: models/model.ts:276

Sets an attribute value

Parameters

name

keyof T

Key of the attribute's value being set

value

any

Value of the attribute being set

Returns

void


update()

update(attrs): Promise<boolean>

Defined in: models/model.ts:231

Parameters

attrs

ModelProps

The attributes provided to update the record.

Returns

Promise<boolean>

a boolean: True if successfully updated | False if not updated


create()

static create(attrs): Promise<any>

Defined in: models/model.ts:58

Creates a new model & save the record

Parameters

attrs

ModelProps

The attributes passing to the model.

Returns

Promise<any>

either the saved model or null, if the model could not be saved.


find()

static find(uuid): Promise<any>

Defined in: models/model.ts:88

Finds a record

Parameters

uuid

string

The unique ID of the record being found

Returns

Promise<any>

a new instance of the found record


findAll()

static findAll(): Promise<any[]>

Defined in: models/model.ts:134

Load all records by type

Returns

Promise<any[]>

A list of all records that match a particular model id


findAllBy()

static findAllBy(params): Promise<any>

Defined in: models/model.ts:125

Alias for query

Parameters

params

QueryProps

The query properties used to filter & find a record

Returns

Promise<any>

A list of found records that match the params, may be an empty []


findBy()

static findBy(params): Promise<any>

Defined in: models/model.ts:107

Finds a single record based on props (essentially limits query to a single result)

Parameters

params

QueryProps

The query properties used to filter & find a record

Returns

Promise<any>

null if no record found, or a new instance of the record


findOrCreate()

static findOrCreate(attrs): Promise<any>

Defined in: models/model.ts:154

Finds a record by given UUID, if it doesn't exist, creates a new record instead

Parameters

attrs

ModelProps

The attributes provided to query the record. Only UUID will be used

Returns

Promise<any>

Either the existing record or newly created one


findOrCreateBy()

static findOrCreateBy(attrs): Promise<any>

Defined in: models/model.ts:171

Finds a record by a query, if it doesn't exist, creates a new record instead

Parameters

attrs

IKeyValue

The attributes provided to query the record.

Returns

Promise<any>

Either the existing record or newly created one


query()

static query(params): Promise<any[]>

Defined in: models/model.ts:190

Query for resources using an object of properties/filters

Parameters

params

IKeyValue

The attributes provided to query the record.

Returns

Promise<any[]>

An array of the found records (created as new instances of model)