JSDoc for src/schemas/*.js complete. Just need to finish src/schemas/channel
This commit is contained in:
parent
1d5c1037ab
commit
b78d35d0f8
4 changed files with 114 additions and 2 deletions
|
|
@ -20,6 +20,9 @@ const {mongoose} = require('mongoose');
|
|||
//Local Imports
|
||||
const config = require('./../../config.json');
|
||||
|
||||
/**
|
||||
* DB Schema for single document for keeping track of server stats
|
||||
*/
|
||||
const statSchema = new mongoose.Schema({
|
||||
//This does NOT handle deleted accounts/channels. Use userModel.estimatedDocumentCount() for number of active users.
|
||||
userCount: {
|
||||
|
|
@ -57,6 +60,10 @@ const statSchema = new mongoose.Schema({
|
|||
});
|
||||
|
||||
//statics
|
||||
/**
|
||||
* Get's servers sole stat document from the DB
|
||||
* @returns {Mongoose.Document} Server's sole statistics document
|
||||
*/
|
||||
statSchema.statics.getStats = async function(){
|
||||
//Get the first document we find
|
||||
var stats = await this.findOne({});
|
||||
|
|
@ -78,6 +85,9 @@ statSchema.statics.getStats = async function(){
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Increments Lunach count upon server launch and prints out amount of launches since server initialization
|
||||
*/
|
||||
statSchema.statics.incrementLaunchCount = async function(){
|
||||
//get our statistics document
|
||||
const stats = await this.getStats();
|
||||
|
|
@ -91,6 +101,10 @@ statSchema.statics.incrementLaunchCount = async function(){
|
|||
console.log(`First booted on ${stats.firstLaunch}.`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Increments user count upon new user registration
|
||||
* @returns {Number} Number of users before count was incremented
|
||||
*/
|
||||
statSchema.statics.incrementUserCount = async function(){
|
||||
//get our statistics document
|
||||
const stats = await this.getStats();
|
||||
|
|
@ -105,6 +119,10 @@ statSchema.statics.incrementUserCount = async function(){
|
|||
return oldCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Increments channel count upon new channel registration
|
||||
* @returns {Number} Number of channels before count was incremented
|
||||
*/
|
||||
statSchema.statics.incrementChannelCount = async function(){
|
||||
//get our statistics document
|
||||
const stats = await this.getStats();
|
||||
|
|
@ -119,6 +137,10 @@ statSchema.statics.incrementChannelCount = async function(){
|
|||
return oldCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tattoo's toke to the server statistics document
|
||||
* @param {Map} toke - Tokemap handed down from Tokebot
|
||||
*/
|
||||
statSchema.statics.tattooToke = async function(toke){
|
||||
//Get the statistics document
|
||||
const stats = await this.getStats();
|
||||
|
|
@ -130,6 +152,10 @@ statSchema.statics.tattooToke = async function(toke){
|
|||
await stats.save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets toke count from statistics document
|
||||
* @returns {Number} Number of tokes across the entire site
|
||||
*/
|
||||
statSchema.statics.getTokeCount = async function(){
|
||||
//get stats doc
|
||||
const stats = await this.getStats();
|
||||
|
|
@ -138,6 +164,10 @@ statSchema.statics.getTokeCount = async function(){
|
|||
return stats.tokes.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets toke counts for each individual callout in a map
|
||||
* @returns {Map} Map of toke counts for each individual callout registered to the server
|
||||
*/
|
||||
statSchema.statics.getTokeCommandCounts = async function(){
|
||||
//get stats doc
|
||||
const stats = await this.getStats()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue