Module

User

Members

Object.<Sequelize.models>

# inner constant models

Sequelize models

View Source api/interfaces/Position.js, line 11

Object.<Sequelize.models>

# inner constant models

Sequelize models

View Source api/interfaces/User.js, line 17

Methods

# static buildPermissions(user) → {Object}

Flatten the permission array to keep only names

Parameters:
Name Type Description
user Model

View Source api/interfaces/User.js, line 261

Object

# async static generateJWT(user) → {Promise.<string>}

Generate a JWT token

Parameters:
Name Type Description
user User

View Source api/interfaces/User.js, line 218

Promise.<string>

# async inner add(newUser) → {Promise.<APIResp>}

Add a new user

Parameters:
Name Type Description
newUser NewUser

View Source api/interfaces/User.js, line 479

APIError
Promise.<APIResp>

# async inner addSCTFromETL(newSct, modules, campusID) → {Promise.<APIResp>}

Add a new student

Parameters:
Name Type Description
newSct newSCTFromETL
modules Array.<number>
campusID number

View Source api/interfaces/User.js, line 846

Promise.<APIResp>

# async inner addStaffFromETL(newStaff, positionID) → {Promise.<APIResp>}

Add a new staff members

Parameters:
Name Type Description
newStaff newStaffFromETL
positionID number

View Source api/interfaces/User.js, line 682

Promise.<APIResp>

# async inner addStudentFromETL(newStudent) → {Promise.<APIResp>}

Add a new student

Parameters:
Name Type Description
newStudent NewStudentFromETL

View Source api/interfaces/User.js, line 717

Promise.<APIResp>

# inner arePasswordsSame(password1, password2) → {boolean}

Checks if the password is identical to the password confirmation

Parameters:
Name Type Description
password1 string

Password

password2 string

Password confirmation

View Source api/interfaces/User.js, line 163

boolean

# async inner getAll() → {Promise.<APIResp>}

Get all users

View Source api/interfaces/User.js, line 578

Promise.<APIResp>

# async inner getAllSCTs(currUser, filters) → {Promise.<APIResp>}

Get all SCTs

Parameters:
Name Type Description
currUser module:LoggedUser
filters SCTsFilters

View Source api/interfaces/User.js, line 885

Promise.<APIResp>

# async inner getAllStudents(currUser, filters) → {Promise.<APIResp>}

Get all student

Parameters:
Name Type Description
currUser module:LoggedUser
filters StudentFilters

View Source api/interfaces/User.js, line 748

Promise.<APIResp>

# async inner getByID(currUser, userID, filters) → {Promise.<APIResp>}

Get one user by its id

Parameters:
Name Type Description
currUser module:LoggedUser
userID number
filters object

View Source api/interfaces/User.js, line 602

APIError
Promise.<APIResp>

# async inner getByUUID(currUser, uuid, filters) → {Promise.<APIResp>}

Get one user by its uuid

Parameters:
Name Type Description
currUser module:LoggedUser
uuid string
filters StudentFilters

View Source api/interfaces/User.js, line 651

APIError
Promise.<APIResp>

# async inner getStudentByUUID(currUser, uuid, filters) → {Promise.<APIResp>}

Get a student by its UUID

Parameters:
Name Type Description
currUser module:LoggedUser
uuid string
filters StudentFilters

View Source api/interfaces/User.js, line 770

Promise.<APIResp>

# async inner getStudentsAtResit(currUser, filters) → {Promise.<APIResp>}

Get all students at resit

Parameters:
Name Type Description
currUser module:LoggedUser
filters StudentFilters

View Source api/interfaces/User.js, line 798

Promise.<APIResp>

# async inner hashPassword(password) → {Promise.<string>}

Hash a password

Parameters:
Name Type Description
password string

View Source api/interfaces/User.js, line 194

Error
Promise.<string>

# inner isPasswordSafe(password) → {boolean}

Checks if the password is safe

Parameters:
Name Type Description
password string

View Source api/interfaces/User.js, line 172

boolean

# async inner login(user) → {Promise.<APIResp>}

Login a user

Parameters:
Name Type Description
user LoggingUser

View Source api/interfaces/User.js, line 529

APIError
Promise.<APIResp>

# async inner passwordMatchHash(password, hash) → {Promise.<boolean>}

Compares a plaintext password to a hash

Parameters:
Name Type Description
password string

Plaintext password

hash string

Hashed password

View Source api/interfaces/User.js, line 250

Error
Promise.<boolean>

# async inner processSCTFilters(currUser, filters, disabledExpandsopt) → {SeqSCTsFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters SCTsFilters
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 436

SeqSCTsFilters

# async inner processStudentFilters(currUser, filters, disabledExpandsopt) → {SeqStudentFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters StudentFilters
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 350

SeqStudentFilters

# async inner processUserFilters(currUser, filters, uuid, disabledExpandsopt) → {SeqUserFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters UserFilters
uuid string
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 278

SeqUserFilters

Type Definitions

Object

# LoggingUser

Properties:
Name Type Description
email string
password string

View Source api/interfaces/User.js, line 115

Object

# newSCTFromETL

Properties:
Name Type Description
first_name string
last_name string
email string
birth_date Date | string
modules string
Section string
gender string
region string

View Source api/interfaces/User.js, line 91

Object

# newStaffFromETL

Properties:
Name Type Description
first_name string
last_name string
email string
birth_date Date | string
gender string
region string

View Source api/interfaces/User.js, line 104

Object

# NewStudentFromETL

Properties:
Name Type Description
first_name string
last_name string
birth_date Date | string
email string
gender string
region string
campus_id string | number

View Source api/interfaces/User.js, line 79

Object

# NewUser

Properties:
Name Type Description
first_name string
last_name string
birth_date Date | string
email string
password1 string
password2 string
address UserAddress
gender string
region string
campus string

View Source api/interfaces/User.js, line 50

Object

# SCTsFilters

Properties:
Name Type Attributes Description
campus string <optional>
expand array.<("campus"|"module")> <optional>

View Source api/interfaces/User.js, line 137

Object

# SeqSCTsFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 144

Object

# SeqStudentFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 130

Object

# SeqUserFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 72

Object

# StudentFilters

Properties:
Name Type Attributes Description
campus string <optional>
onlyOld "true" | "false" | string <optional>
expand array.<("campus"|"module"|"ects"|"job"|"compta")> <optional>

View Source api/interfaces/User.js, line 122

Object

# User

Properties:
Name Type Description
user_id number
uuid string
first_name string
last_name string
birth_date Date | string
email string
password string
address UserAddress
gender string
region string
campus string
study Study

View Source api/interfaces/User.js, line 33

Object

# UserAddress

Properties:
Name Type Description
street string
city string
postalCode string

View Source api/interfaces/User.js, line 25

Object

# UserFilters

Properties:
Name Type Attributes Description
campus string <optional>
expand array.<("permission"|"campus"|"study"|"module"|"ects"|"job"|"compta")> <optional>

View Source api/interfaces/User.js, line 65

Members

Object.<Sequelize.models>

# inner constant models

Sequelize models

View Source api/interfaces/Position.js, line 11

Object.<Sequelize.models>

# inner constant models

Sequelize models

View Source api/interfaces/User.js, line 17

Methods

# static buildPermissions(user) → {Object}

Flatten the permission array to keep only names

Parameters:
Name Type Description
user Model

View Source api/interfaces/User.js, line 261

Object

# async static generateJWT(user) → {Promise.<string>}

Generate a JWT token

Parameters:
Name Type Description
user User

View Source api/interfaces/User.js, line 218

Promise.<string>

# async inner add(newUser) → {Promise.<APIResp>}

Add a new user

Parameters:
Name Type Description
newUser NewUser

View Source api/interfaces/User.js, line 479

APIError
Promise.<APIResp>

# async inner addSCTFromETL(newSct, modules, campusID) → {Promise.<APIResp>}

Add a new student

Parameters:
Name Type Description
newSct newSCTFromETL
modules Array.<number>
campusID number

View Source api/interfaces/User.js, line 846

Promise.<APIResp>

# async inner addStaffFromETL(newStaff, positionID) → {Promise.<APIResp>}

Add a new staff members

Parameters:
Name Type Description
newStaff newStaffFromETL
positionID number

View Source api/interfaces/User.js, line 682

Promise.<APIResp>

# async inner addStudentFromETL(newStudent) → {Promise.<APIResp>}

Add a new student

Parameters:
Name Type Description
newStudent NewStudentFromETL

View Source api/interfaces/User.js, line 717

Promise.<APIResp>

# inner arePasswordsSame(password1, password2) → {boolean}

Checks if the password is identical to the password confirmation

Parameters:
Name Type Description
password1 string

Password

password2 string

Password confirmation

View Source api/interfaces/User.js, line 163

boolean

# async inner getAll() → {Promise.<APIResp>}

Get all users

View Source api/interfaces/User.js, line 578

Promise.<APIResp>

# async inner getAllSCTs(currUser, filters) → {Promise.<APIResp>}

Get all SCTs

Parameters:
Name Type Description
currUser module:LoggedUser
filters SCTsFilters

View Source api/interfaces/User.js, line 885

Promise.<APIResp>

# async inner getAllStudents(currUser, filters) → {Promise.<APIResp>}

Get all student

Parameters:
Name Type Description
currUser module:LoggedUser
filters StudentFilters

View Source api/interfaces/User.js, line 748

Promise.<APIResp>

# async inner getByID(currUser, userID, filters) → {Promise.<APIResp>}

Get one user by its id

Parameters:
Name Type Description
currUser module:LoggedUser
userID number
filters object

View Source api/interfaces/User.js, line 602

APIError
Promise.<APIResp>

# async inner getByUUID(currUser, uuid, filters) → {Promise.<APIResp>}

Get one user by its uuid

Parameters:
Name Type Description
currUser module:LoggedUser
uuid string
filters StudentFilters

View Source api/interfaces/User.js, line 651

APIError
Promise.<APIResp>

# async inner getStudentByUUID(currUser, uuid, filters) → {Promise.<APIResp>}

Get a student by its UUID

Parameters:
Name Type Description
currUser module:LoggedUser
uuid string
filters StudentFilters

View Source api/interfaces/User.js, line 770

Promise.<APIResp>

# async inner getStudentsAtResit(currUser, filters) → {Promise.<APIResp>}

Get all students at resit

Parameters:
Name Type Description
currUser module:LoggedUser
filters StudentFilters

View Source api/interfaces/User.js, line 798

Promise.<APIResp>

# async inner hashPassword(password) → {Promise.<string>}

Hash a password

Parameters:
Name Type Description
password string

View Source api/interfaces/User.js, line 194

Error
Promise.<string>

# inner isPasswordSafe(password) → {boolean}

Checks if the password is safe

Parameters:
Name Type Description
password string

View Source api/interfaces/User.js, line 172

boolean

# async inner login(user) → {Promise.<APIResp>}

Login a user

Parameters:
Name Type Description
user LoggingUser

View Source api/interfaces/User.js, line 529

APIError
Promise.<APIResp>

# async inner passwordMatchHash(password, hash) → {Promise.<boolean>}

Compares a plaintext password to a hash

Parameters:
Name Type Description
password string

Plaintext password

hash string

Hashed password

View Source api/interfaces/User.js, line 250

Error
Promise.<boolean>

# async inner processSCTFilters(currUser, filters, disabledExpandsopt) → {SeqSCTsFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters SCTsFilters
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 436

SeqSCTsFilters

# async inner processStudentFilters(currUser, filters, disabledExpandsopt) → {SeqStudentFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters StudentFilters
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 350

SeqStudentFilters

# async inner processUserFilters(currUser, filters, uuid, disabledExpandsopt) → {SeqUserFilters}

Transform URI query params to sequelize where and include clauses.

Parameters:
Name Type Attributes Description
currUser module:LoggedUser
filters UserFilters
uuid string
disabledExpands Array.<string> <optional>

List of expand to not include in the clauses

View Source api/interfaces/User.js, line 278

SeqUserFilters

Type Definitions

Object

# LoggingUser

Properties:
Name Type Description
email string
password string

View Source api/interfaces/User.js, line 115

Object

# newSCTFromETL

Properties:
Name Type Description
first_name string
last_name string
email string
birth_date Date | string
modules string
Section string
gender string
region string

View Source api/interfaces/User.js, line 91

Object

# newStaffFromETL

Properties:
Name Type Description
first_name string
last_name string
email string
birth_date Date | string
gender string
region string

View Source api/interfaces/User.js, line 104

Object

# NewStudentFromETL

Properties:
Name Type Description
first_name string
last_name string
birth_date Date | string
email string
gender string
region string
campus_id string | number

View Source api/interfaces/User.js, line 79

Object

# NewUser

Properties:
Name Type Description
first_name string
last_name string
birth_date Date | string
email string
password1 string
password2 string
address UserAddress
gender string
region string
campus string

View Source api/interfaces/User.js, line 50

Object

# SCTsFilters

Properties:
Name Type Attributes Description
campus string <optional>
expand array.<("campus"|"module")> <optional>

View Source api/interfaces/User.js, line 137

Object

# SeqSCTsFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 144

Object

# SeqStudentFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 130

Object

# SeqUserFilters

Properties:
Name Type Description
where Object

Where clause

include Array.<{model: Object, where: Object, required: boolean}>

Include clause

View Source api/interfaces/User.js, line 72

Object

# StudentFilters

Properties:
Name Type Attributes Description
campus string <optional>
onlyOld "true" | "false" | string <optional>
expand array.<("campus"|"module"|"ects"|"job"|"compta")> <optional>

View Source api/interfaces/User.js, line 122

Object

# User

Properties:
Name Type Description
user_id number
uuid string
first_name string
last_name string
birth_date Date | string
email string
password string
address UserAddress
gender string
region string
campus string
study Study

View Source api/interfaces/User.js, line 33

Object

# UserAddress

Properties:
Name Type Description
street string
city string
postalCode string

View Source api/interfaces/User.js, line 25

Object

# UserFilters

Properties:
Name Type Attributes Description
campus string <optional>
expand array.<("permission"|"campus"|"study"|"module"|"ects"|"job"|"compta")> <optional>

View Source api/interfaces/User.js, line 65