[MAJOR][FIRSTCOMMIT] Added basic routes, controllers, repos to kanban service (no postgres yet)
This commit is contained in:
54
lib/models/user.model.js
Normal file
54
lib/models/user.model.js
Normal file
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
// **** Variables **** //
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UserRoles = void 0;
|
||||
const INVALID_CONSTRUCTOR_PARAM = 'nameOrObj arg must a string or an ' +
|
||||
'object with the appropriate user keys.';
|
||||
var UserRoles;
|
||||
(function (UserRoles) {
|
||||
UserRoles[UserRoles["Standard"] = 0] = "Standard";
|
||||
UserRoles[UserRoles["Admin"] = 1] = "Admin";
|
||||
})(UserRoles || (exports.UserRoles = UserRoles = {}));
|
||||
// **** Functions **** //
|
||||
/**
|
||||
* Create new User.
|
||||
*/
|
||||
function new_(name, email, role, pwdHash, id) {
|
||||
return {
|
||||
id: (id !== null && id !== void 0 ? id : -1),
|
||||
name: (name !== null && name !== void 0 ? name : ''),
|
||||
email: (email !== null && email !== void 0 ? email : ''),
|
||||
role: (role !== null && role !== void 0 ? role : UserRoles.Standard),
|
||||
pwdHash: (pwdHash !== null && pwdHash !== void 0 ? pwdHash : ''),
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Get user instance from object.
|
||||
*/
|
||||
function from(param) {
|
||||
// Check is user
|
||||
if (!isUser(param)) {
|
||||
throw new Error(INVALID_CONSTRUCTOR_PARAM);
|
||||
}
|
||||
// Get user instance
|
||||
const p = param;
|
||||
return new_(p.name, p.email, p.role, p.pwdHash, p.id);
|
||||
}
|
||||
/**
|
||||
* See if the param meets criteria to be a user.
|
||||
*/
|
||||
function isUser(arg) {
|
||||
return (!!arg &&
|
||||
typeof arg === 'object' &&
|
||||
'id' in arg &&
|
||||
'email' in arg &&
|
||||
'name' in arg &&
|
||||
'role' in arg);
|
||||
}
|
||||
// **** Export default **** //
|
||||
exports.default = {
|
||||
new: new_,
|
||||
from,
|
||||
isUser,
|
||||
};
|
||||
//# sourceMappingURL=user.model.js.map
|
||||
Reference in New Issue
Block a user