makecord-create
Version:
Create advanced Discord Bots with Makecord - Now with TypeScript support
62 lines (55 loc) • 1.25 kB
JavaScript
import { mongoose } from '../connection.js';
const userSchema = new mongoose.Schema({
userId: {
type: String,
required: true,
unique: true
},
username: {
type: String,
required: true
},
discriminator: String,
avatar: String,
createdAt: {
type: Date,
default: Date.now
},
updatedAt: {
type: Date,
default: Date.now
},
// Add any other user properties you want to store
settings: {
type: Map,
of: mongoose.Schema.Types.Mixed,
default: {}
}
}, {
timestamps: true
});
// Create and export the User model
export const User = mongoose.model('User', userSchema);
/**
* Find or create a user
* @param {Object} userData - User data from Discord
* @returns {Promise<Object>} - The user document
*/
export async function findOrCreateUser(userData) {
try {
let user = await User.findOne({ userId: userData.id });
if (!user) {
user = new User({
userId: userData.id,
username: userData.username,
discriminator: userData.discriminator,
avatar: userData.avatar
});
await user.save();
}
return user;
} catch (error) {
console.error('Error finding or creating user:', error);
throw error;
}
}