UNPKG

kpiplus

Version:

KPI+

1 lines 1.99 kB
var User=require("./user"),Colleague=require("./colleague"),async=require("async"),messageSchema=new Schema({email_sender:{type:String,required:!0},email_receiver:{type:String,required:!0},email_owner:{type:String,required:!0},title:{type:String},content:{type:String},read:{type:Boolean,default:!1},status:{type:Boolean,default:!1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});messageSchema.index({email_sender:1,email_receiver:1}),messageSchema.index({email_owner:1}),messageSchema.index({date_created:-1});var message=mongoose.model("message",messageSchema);message.sendMessage=function(e){Colleague.findOne({email_owner:e.email_sender,email:e.email_receiver},function(a,t){if(a)return console.log(a);t&&(t.latest_message=e.content,t.latest_message_id=e._id.toString(),t.latest_message_date=e.date_created,t.save(function(e){if(e)return console.log(e)}))}),Colleague.findOne({email_owner:e.email_receiver,email:e.email_sender},function(a,t){if(a)return console.log(a);t&&(t.latest_message=e.content,t.latest_message_id=e._id.toString(),t.latest_message_date=e.date_created,t.save(function(e){if(e)return console.log(e)}))});var a=e.toObject();a.code="message",a.action="NEW",a.email_sender.indexOf("guest@")>=0?a.title="Tin nhắn từ "+new Buffer(a.email_sender.split("@")[1],"base64").toString():a.title="Tin nhắn từ "+a.email_sender,a.body=a.content,a.sender=a.email_sender,User.emitEvent(a.email_receiver,"message:new",a)},message.createMessage=function(e,a,t,s,n){var r=new message;r.email_owner=e,r.email_sender=e,r.email_receiver=a,r.title=t,r.content=s,r.user_created=e,r.read=!0,r.save(function(i){if(i)n&&n(i);else{alertMessage(e);var l=new message;l.email_owner=a,l.email_sender=e,l.email_receiver=a,l.title=t,l.content=s,l.user_created=e,l.save(function(e){e?n&&n(e):(message.sendMessage(l),alertMessage(a),n&&n(null,r,l))})}})},module.exports=message;