User search and creation

This commit is contained in:
buzz-lightsnack-2007 2025-04-07 22:24:00 +08:00
parent 5fa9e6efd6
commit 0458e11267
7 changed files with 109 additions and 42 deletions

View file

@ -1,10 +1,13 @@
const Entry = require(`./object.JS`);
class Activity extends Entry {
username;
description;
duration;
date;
/*
Default properties:
username
description
duration
date
*/
constructor(PROPERTIES) {
super(PROPERTIES);
@ -21,15 +24,8 @@ class Activity extends Entry {
"description": {"type": String},
"date": {"type": Number},
"duration": {"type": Number}
}
let TEST = new Activity();
// Verify that the schema is valid.
Object.keys(SCHEMA).forEach((KEY) => {
if (!Object.keys(TEST).includes(KEY)) {delete SCHEMA[KEY];};
});
return (SCHEMA)
};
return (SCHEMA);
}
}

View file

@ -1,7 +1,7 @@
/* An object to represent an entry in the database. */
class Entry {
constructor(PROPERTIES) {
(PROPERTIES) ? Object.entries(PROPERTIES).forEach(([property, value]) => {
(PROPERTIES && (Object.keys(PROPERTIES).length)) ? Object.entries(PROPERTIES).forEach(([property, value]) => {
this[property] = value;
}) : false;
};

View file

@ -2,11 +2,13 @@ const Entry = require(`./object.JS`);
const Hash = require(`../../utilities/hash.JS`);
class User extends Entry {
// Default properties
name;
ID;
activated = false;
passcode;
/*
Default properties:
name
ID
activated = false
passcode
*/
#login = false;
constructor(PROPERTIES) {
@ -40,15 +42,8 @@ class User extends Entry {
"ID": {"type": String, "required": true, "unique": true, "dropDups": true},
"activated": {"type": Boolean},
"passcode": {"type": String}
}
let TEST = new User();
// Verify that the schema is valid.
Object.keys(SCHEMA).forEach((KEY) => {
if (!Object.keys(TEST).includes(KEY)) {delete SCHEMA[KEY];};
});
return (SCHEMA)
};
return (SCHEMA);
}
}

View file

@ -43,6 +43,7 @@ class DBManagement {
let RESULT = [];
if ((CRITERIA && CRITERIA instanceof Object) ? !(Object.keys(CRITERIA).length) : true) {
console.log(`Searching all...`);
RESULT = await this.model.find();
} else if (CRITERIA instanceof Object) {
RESULT = await this.model.find(CRITERIA);

View file

@ -19,7 +19,7 @@ class UsersManagement extends DBManagement {
@param {object} OPTIONS the account options
@return {object} the user data
*/
async create(USERNAME, OPTIONS, done) {
async create(USERNAME, OPTIONS) {
await this.state;
/*
@ -47,7 +47,7 @@ class UsersManagement extends DBManagement {
}
if ((USERNAME) ? USERNAME.trim() : false) {
let CURRENT = !(await checkMatch())
let CURRENT = (await checkMatch())
CURRENT = (!CURRENT) ? await createUser() : CURRENT;
return (CURRENT);