FCC-Project_Exercise-Tracker/scripts/database/entry/user.JS
2025-04-07 22:24:00 +08:00

50 lines
No EOL
1.2 KiB
JavaScript

const Entry = require(`./object.JS`);
const Hash = require(`../../utilities/hash.JS`);
class User extends Entry {
/*
Default properties:
name
ID
activated = false
passcode
*/
#login = false;
constructor(PROPERTIES) {
super(PROPERTIES);
this.authenticate();
};
/* Authenticate the user
@param {STRING} INPUT the passcode passed
@return {BOOLEAN} the user authentication state
*/
authenticate(INPUT) {
// Reset the login state.
if (this.#login) {this.#login = false;};
if ((this.passcode) ? (INPUT && this.passcode == INPUT) : true) {
this.#login = true;
}
return (this.#login);
}
/*
Generate a schema for MongoDB.
@return {OBJECT} the schema
*/
static generateTemplate() {
let SCHEMA = {
"name": {"type": String, "required": true, "unique": true, "dropDups": true},
"ID": {"type": String, "required": true, "unique": true, "dropDups": true},
"activated": {"type": Boolean},
"passcode": {"type": String}
};
return (SCHEMA);
}
}
module.exports = User;