Add activities management

This commit is contained in:
buzz-lightsnack-2007 2025-04-10 22:50:20 +08:00
parent 9151a88ce5
commit dcbd5015d2
3 changed files with 91 additions and 1 deletions

View file

@ -11,8 +11,25 @@ class Activity extends Entry {
constructor(PROPERTIES) {
super(PROPERTIES);
// Set a default date value.
this.date = this.date ? this.date : new Date(Date.now());
this.set_date(this.date);
};
/*
Store the date with the corresponding ECMA value. If not, the existing date value is converted.
@param {Date} DATE the date
@return {Number} the date in ECMA
*/
set_date(DATE) {
if (DATE || this.date) {
this.date = parseInt((new Date(DATE || this.date)).getTime());
return (this.date);
}
}
/*
Generate a schema for MongoDB.

View file

@ -1,2 +1,42 @@
const DBManagement = require(`./management.JS`);
const Activity = require(`../entry/activity.JS`);
class ActivityManagement extends DBManagement {
constructor() {
super(`localhost:27017`, `Activity-Tracker`);
this.configure(`Activities`, Activity.generateTemplate());
};
/*
Create a user. The ID will be automatically generated.
@param {string} DETAILS the activity's details
@param {object} OPTIONS the account options
@return {object} the user data
*/
async create(DETAILS, OPTIONS, done) {
await this.state;
/*
Create an activity.
*/
const createActivity = async () => {
let CREATED = new Activity(DETAILS);
let ENTRY = new this.model(CREATED);
try {
let RESULT = await ENTRY.save();
} catch(ERROR) {
throw new CustomErrors.DBProblem(ERROR.message);
}
return (CREATED);
}
let CURRENT = await createActivity();
return (CURRENT);
};
}
module.exports = ActivityManagement;