Skip to main content

Class: Otp

Defined in: models/otp.ts:37

The OTP class handles all the methods/properties of the OTP

Extends​

Constructors​

Constructor​

new Otp(props): Otp;

Defined in: models/otp.ts:42

Parameters​

ParameterType
propsOtpProps

Returns​

Otp

Overrides​

Model.constructor

Properties​

PropertyModifierTypeDefault valueOverridesInherited fromDefined in
attributespublicOtpProps{}-Model.attributesmodels/model.ts:35
emailAddress?publicstringundefined--models/otp.ts:39
otp?publicstringundefined--models/otp.ts:40
uuidpublicstringundefined-Model.uuidmodels/model.ts:36
idstaticstring'otp'Model.id-models/otp.ts:38

Accessors​

id​

Get Signature​

get id(): string;

Defined in: models/model.ts:258

Gets the ID

Returns​

string

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

Inherited from​

Model.id


isNew​

Get Signature​

get isNew(): boolean;

Defined in: models/model.ts:267

Checks if model is new

Returns​

boolean

Returns boolean if uuid is missing from record

Inherited from​

Model.isNew

Methods​

delete()​

delete(): Promise<boolean>;

Defined in: models/model.ts:79

Deletes a record

Returns​

Promise<boolean>

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

Inherited from​

Model.delete


deleteRecord()​

deleteRecord(data): Promise<boolean>;

Defined in: models/otp.ts:91

Deletes an OTP. In the application, used once an OTP has been validated.

Parameters​

ParameterTypeDescription
dataIKeyValueThe record data needed to be deleted

Returns​

Promise<boolean>


get()​

get(name): any;

Defined in: models/model.ts:276

Gets an attribute's value

Parameters​

ParameterTypeDescription
namestring | numberName of the attribute that is being retrieved

Returns​

any

The attribute value being retrieved

Inherited from​

Model.get


hashOtp()​

hashOtp(otp?, salt?): Promise<any>;

Defined in: models/otp.ts:59

Parameters​

ParameterTypeDefault valueDescription
otpstring...The OTP that is getting hashed
saltstring''The salt that is usd for hashing the OTP. If none provided, a new salt will be generated. Hashes an OTP using a provided or generated salt string.

Returns​

Promise<any>

A new hash object is returned

hash: string,
salt: string
}```

***

### save()

```ts
save(): Promise<boolean>;

Defined in: models/model.ts:207

Save a record in DB

Returns​

Promise<boolean>

true if the record was saved in the DB

Inherited from​

Model.save


saveOtp()​

saveOtp(props): Promise<boolean>;

Defined in: models/otp.ts:132

Saves an OTP into a new container for storing the OTPs. Will also override OTPs that have been previously stored by same user.

Parameters​

ParameterTypeDescription
props{ hash: string; salt: string; }The object used to save the OTP record
props.hashstringThe hashed OTP
props.saltstringThe OTP SALT that was used to generate the OTP

Returns​

Promise<boolean>

A boolean indicating if the record was saved or not


serialize()​

serialize(): IKeyValue;

Defined in: models/model.ts:294

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.

Inherited from​

Model.serialize


set()​

set(name, value): void;

Defined in: models/model.ts:285

Sets an attribute value

Parameters​

ParameterTypeDescription
namestring | numberKey of the attribute's value being set
valueanyValue of the attribute being set

Returns​

void

Inherited from​

Model.set


touch()​

touch(): Promise<boolean>;

Defined in: models/model.ts:229

Update a record's modified timestamp

Returns​

Promise<boolean>

Inherited from​

Model.touch


update()​

update(attrs): Promise<boolean>;

Defined in: models/model.ts:240

Parameters​

ParameterTypeDescription
attrsModelPropsThe attributes provided to update the record.

Returns​

Promise<boolean>

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

Saves the passed attributes to the db

Inherited from​

Model.update


validateOtp()​

validateOtp(otp): Promise<boolean>;

Defined in: models/otp.ts:164

Validates an OTP provided by the user with this.otp value. It will use the same SALT value to assess if the OTP values match.

Parameters​

ParameterTypeDescription
otpstringAn OTP provided by the user

Returns​

Promise<boolean>

true if the OTP is valid, false if the OTP is not valid.


checkValidWindow()​

static checkValidWindow(token): boolean;

Defined in: models/otp.ts:152

This method checks if the OTP is within the valid 15 minute timeframe.

Parameters​

ParameterTypeDescription
tokenstringThe OTP token

Returns​

boolean

true if the OTP is within 15 minutes, false if outside that window.


create()​

static create(attrs): Promise<any>;

Defined in: models/model.ts:59

Creates a new model & save the record

Parameters​

ParameterTypeDescription
attrsModelPropsThe attributes passing to the model.

Returns​

Promise<any>

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

Inherited from​

Model.create


find()​

static find(uuid): Promise<any>;

Defined in: models/model.ts:89

Finds a record

Parameters​

ParameterTypeDescription
uuidstringThe unique ID of the record being found

Returns​

Promise<any>

a new instance of the found record

Inherited from​

Model.find


findAll()​

static findAll(): Promise<any[]>;

Defined in: models/model.ts:135

Load all records by type

Returns​

Promise<any[]>

A list of all records that match a particular model id

Inherited from​

Model.findAll


findAllBy()​

static findAllBy(params): Promise<any[]>;

Defined in: models/model.ts:126

Alias for query

Parameters​

ParameterTypeDescription
paramsQueryPropsThe query properties used to filter & find a record

Returns​

Promise<any[]>

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

Inherited from​

Model.findAllBy


findBy()​

static findBy(params): Promise<any>;

Defined in: models/model.ts:108

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

Parameters​

ParameterTypeDescription
paramsQueryPropsThe query properties used to filter & find a record

Returns​

Promise<any>

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

Inherited from​

Model.findBy


findOrCreate()​

static findOrCreate(attrs): Promise<any>;

Defined in: models/model.ts:155

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

Parameters​

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

Returns​

Promise<any>

Either the existing record or newly created one

Inherited from​

Model.findOrCreate


findOrCreateBy()​

static findOrCreateBy(attrs): Promise<any>;

Defined in: models/model.ts:172

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

Parameters​

ParameterTypeDescription
attrsIKeyValueThe attributes provided to query the record.

Returns​

Promise<any>

Either the existing record or newly created one

Inherited from​

Model.findOrCreateBy


findOtp()​

static findOtp(props): Promise<Otp>;

Defined in: models/otp.ts:102

Finds an OTP based on the provided properties. In the application, will use "emailAddress"

Parameters​

ParameterTypeDescription
propsIKeyValueThe properties used to find the OTP record. In the app, the emailAddress typically.

Returns​

Promise<Otp>

A new OTP class is returned


generateOtp()​

static generateOtp(): string;

Defined in: models/otp.ts:118

Generates an OTP

Returns​

string

An OTP with 8 digits.


query()​

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

Defined in: models/model.ts:191

Query for resources using an object of properties/filters

Parameters​

ParameterTypeDescription
paramsIKeyValueThe attributes provided to query the record.

Returns​

Promise<any[]>

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

Inherited from​

Model.query