Started work on updating playlistHandler.js for dedicated/individual userPlaylist and channelPlaylist document collections.

This commit is contained in:
rainbow napkin 2026-06-20 03:31:14 -04:00
parent 36ae90b7af
commit 0b7f99725d
11 changed files with 300 additions and 146 deletions

View file

@ -30,7 +30,7 @@ const emoteModel = require('../emoteSchema');
const channelPermissionSchema = require('./channelPermissionSchema');
const channelBanSchema = require('./channelBanSchema');
const queuedMediaSchema = require('./media/queuedMediaSchema');
const playlistSchema = require('./media/playlist/playlistSchema');
const {playlistSchema} = require('./media/playlist/playlistSchema');
const chatSchema = require('./chatSchema');
//Utils
const { exceptionHandler, errorHandler } = require('../../utils/loggerUtils');

View file

@ -17,13 +17,10 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.*/
//NPM Imports
const {mongoose} = require('mongoose');
//Local Imports
const playlistSchema = require('./playlistSchema');
/**
* DB Schema for Documents representing channel playlists
*/
const channelPlaylistProperties = new mongoose.Schema({
const channelPlaylistSchema = new mongoose.Schema({
channel: {
type: mongoose.SchemaTypes.ObjectID,
ref: "channel",
@ -33,8 +30,5 @@ const channelPlaylistProperties = new mongoose.Schema({
{
discriminatorKey: 'location'
});
//Create 'channelPlaylistSchema' as descriminator of playlistSchema
var channelPlaylistSchema = playlistSchema.discriminator('channel', channelPlaylistProperties);
//Export mongoose model based on channelPlaylistSchema
module.exports = mongoose.model("channelPlaylists", channelPlaylistSchema);
module.exports = channelPlaylistSchema;

View file

@ -19,6 +19,8 @@ const {mongoose} = require('mongoose');
//Local Imports
const playlistMediaSchema = require('./playlistMediaSchema');
const channelPlaylistSchema = require('./channelPlaylistSchema');
const userPlaylistSchema = require('./userPlaylistSchema');
/**
* DB Schema for Documents representing playlists full of media
@ -133,4 +135,11 @@ playlistSchema.methods.pickDefaultTitle = function(title){
}
}
module.exports = playlistSchema;
//Define Playlist Model
const playlistModel = mongoose.model("playlist", playlistSchema);
//Define Exports
module.exports.playlistSchema = playlistSchema;
module.exports.playlistModel = playlistModel;
module.exports.channelPlaylistModel = playlistModel.discriminator('channelPlaylist', channelPlaylistSchema);
module.exports.userPlaylistModel = playlistModel.discriminator('userPlaylist', userPlaylistSchema);

View file

@ -17,13 +17,10 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.*/
//NPM Imports
const {mongoose} = require('mongoose');
//Local Imports
const playlistSchema = require('./playlistSchema');
/**
* DB Schema for Documents representing user playlists
*/
const userPlaylistProperties = new mongoose.Schema({
const userPlaylistSchema = new mongoose.Schema({
user:{
type: mongoose.SchemaTypes.ObjectID,
ref: "user",
@ -33,8 +30,5 @@ const userPlaylistProperties = new mongoose.Schema({
{
discriminatorKey: 'location'
});
//Create 'userPlaylistSchema' as descriminator of playlistSchema
var userPlaylistSchema = playlistSchema.discriminator('user', userPlaylistProperties);
//Export mongoose model based on userPlaylistSchema
module.exports = mongoose.model("userPlaylists", userPlaylistSchema);
module.exports = userPlaylistSchema;

View file

@ -27,7 +27,7 @@ const flairModel = require('../flairSchema');
const permissionModel = require('../permissionSchema');
const emoteModel = require('../emoteSchema');
const emailChangeModel = require('./emailChangeSchema');
const playlistSchema = require('../channel/media/playlist/playlistSchema');
const {playlistSchema} = require('../channel/media/playlist/playlistSchema');
const rememberMeModel = require('./rememberMeSchema');
//Utils
const hashUtil = require('../../utils/hashUtils');