37 lines
756 B
JavaScript
37 lines
756 B
JavaScript
import { Schema, model } from "mongoose";
|
|
|
|
var schema = new Schema({
|
|
timestamp: Date,
|
|
content: String,
|
|
user: {
|
|
name: String,
|
|
color: String,
|
|
website: String,
|
|
uuid: String,
|
|
secret: {type: String, select: false},
|
|
ip: {type: String, select: false},
|
|
agent: String
|
|
}
|
|
}, {
|
|
strict: true,
|
|
strictQuery: true
|
|
});
|
|
|
|
|
|
schema.static("getMessages", async function({query = {}, secret}) {
|
|
var messages = await this.find(query).sort({timestamp: -1}).limit(100).select('+user.secret').lean().exec();
|
|
for (var message of messages) {
|
|
if (message.user) {
|
|
if (secret && secret === message.user.secret) {
|
|
message.user.you = true;
|
|
}
|
|
delete message.user.secret;
|
|
}
|
|
}
|
|
return messages.reverse();
|
|
});
|
|
|
|
|
|
export default model("Message", schema);
|
|
|