56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
const Images = require('../modules/images');
|
|
const Logger = require('../modules/logger');
|
|
const Mongoose = require('mongoose');
|
|
|
|
const MessageSchema = new Mongoose.Schema({
|
|
"order" : { type: Number, default: 0 },
|
|
"text" : { type: String },
|
|
"image" : { type: String },
|
|
"isUser" : { type: Boolean, default: false, required: true, index: true }
|
|
});
|
|
|
|
MessageSchema.pre('findOneAndUpdate', function (next) {
|
|
var message = this;
|
|
|
|
if (message.image && typeof message.image === 'object') {
|
|
Images.saveMessageImage(message.image, (err, filename) => {
|
|
if (err) {
|
|
Logger.error('[MessageSchema.pre(save)] There was an error processing the message image. [' + err + ']', { error: err });
|
|
}
|
|
|
|
if (filename) {
|
|
message.image = filename;
|
|
next();
|
|
}
|
|
})
|
|
} else {
|
|
next();
|
|
}
|
|
});
|
|
|
|
MessageSchema.pre('save', function (next) {
|
|
var message = this;
|
|
|
|
if (message.image && typeof message.image === 'object') {
|
|
Images.saveMessageImage(message.image, (err, filename) => {
|
|
if (err) {
|
|
Logger.error('[MessageSchema.pre(save)] There was an error processing the message image. [' + err + ']', { error: err });
|
|
}
|
|
|
|
if (filename) {
|
|
message.image = filename;
|
|
next();
|
|
}
|
|
})
|
|
} else {
|
|
next();
|
|
}
|
|
});
|
|
|
|
const MessageModel = Mongoose.model('messages', MessageSchema);
|
|
|
|
module.exports = {
|
|
schema: MessageSchema,
|
|
model: MessageModel
|
|
};
|