feat: Create activity log

This commit is contained in:
buzzcode2007 2025-04-11 01:14:31 +00:00
parent 9443810678
commit 8152c172a9
3 changed files with 78 additions and 11 deletions

View file

@ -1,11 +1,12 @@
const Entry = require(`./object.JS`);
class Log extends Entry {
// Default properties
name;
ID;
count;
activities;
/* Default properties
name;
ID;
count;
activities;
*/
constructor(PROPERTIES) {
super(PROPERTIES);
@ -23,11 +24,13 @@ class Log extends Entry {
const clean_activities = () => {
if ((this.activities instanceof Array) ? this.activities.length : false) {
for (let INDEX = 0; INDEX < this.activities.length ; INDEX++) {
[`username`].forEach((TBD) => {
if (Object.keys(this.activities[INDEX].includes(TBD))) {
delete this.activities[INDEX][TBD]
}
[`username`, `_id`, `__v`].forEach((TBD) => {
delete this.activities[INDEX][`_doc`][TBD];
})
if (this.activities[INDEX][`_doc`][`date`]) {
this.activities[INDEX][`_doc`][`date`] = (new Date(this.activities[INDEX][`_doc`][`date`])).toDateString();
}
}
}
}

View file

@ -1,6 +1,7 @@
const DBManagement = require(`./management.JS`);
const Activity = require(`../entry/activity.JS`);
const Log = require(`../entry/log.JS`);
class ActivityManagement extends DBManagement {
constructor() {
@ -37,6 +38,24 @@ class ActivityManagement extends DBManagement {
let CURRENT = await createActivity();
return (CURRENT);
};
/* Search for all activities for a given user.
@param {String} USERNAME the username
@param {Object} CRITERIA the search criteria
@param {Number} SIZE the size
@return {Object} the log
*/
async search_User (USERNAME, CRITERIA, SIZE) {
let RESULT = await this.search(Object.assign({}, CRITERIA, {"username": USERNAME}), SIZE);
const convertData = () => {
let LOG = new Log({"name": USERNAME, "activities": (RESULT instanceof Array ? RESULT.length : false) ? RESULT : []});
return (LOG);
}
return(convertData());
}
}
module.exports = ActivityManagement;