UNPKG

flexbiz-server

Version:

Flexible Server

9 lines (8 loc) 3.47 kB
'use strict';const User=require("./user"),Colleague=require("./colleague"),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,required:!0},image:String,audio:String,video:String,location:Schema.Types.Mixed,object:Schema.Types.Mixed,id_origin: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:""}});(global.configs||{}).createIndexes&&(messageSchema.index({email_sender:1,email_receiver:1}),messageSchema.index({email_owner:1}),messageSchema.index({date_created:-1}),messageSchema.index({title:"text"}),messageSchema.index({title:1}),messageSchema.index({content:1}),messageSchema.index({status:1}),messageSchema.index({user_created:1,visible_to:1,visible_to_users:1})); const message=mongoose.models.message||mongoose.model("message",messageSchema); message.sendMessage=async $obj$$=>{Colleague.findOne({email_owner:$obj$$.email_sender,email:$obj$$.email_receiver},function($error$jscomp$0$$,$coll$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);$coll$$||($coll$$=new Colleague({email_owner:$obj$$.email_sender,email:$obj$$.email_receiver,active:!0,status:!0}));$coll$$.latest_message=$obj$$.content;$coll$$.latest_message_id=$obj$$._id.toString();$coll$$.latest_message_date=$obj$$.date_created;$coll$$.save(function($error$$){if($error$$)return console.log($error$$)})}); Colleague.findOne({email_owner:$obj$$.email_receiver,email:$obj$$.email_sender},function($error$jscomp$0$$,$coll$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);$coll$$||($coll$$=new Colleague({email_owner:$obj$$.email_receiver,email:$obj$$.email_sender,active:!0,status:!0}));$coll$$.latest_message=$obj$$.content;$coll$$.latest_message_id=$obj$$._id.toString();$coll$$.latest_message_date=$obj$$.date_created;$coll$$.save(function($error$$){if($error$$)return console.log($error$$)})}); const $msg$$=$obj$$.toObject();$msg$$.code="message";$msg$$.action="NEW";0<=$msg$$.email_sender.indexOf("guest@")?$msg$$.title=(new Buffer($msg$$.email_sender.split("@")[1],"base64")).toString():$msg$$.title=await User.getInfo({email:$msg$$.email_sender},"name")||$msg$$.email_sender;$msg$$.body=$msg$$.content;$msg$$.sender=$msg$$.email_sender;$msg$$.channel="chat-messages";User.emitEvent($msg$$.email_receiver,"message:new",$msg$$)}; message.createMessage=function($email_sender$$,$email_receiver$$,$title$$,$content$$,$fn$$){const $notifi$$=new message;$notifi$$.email_owner=$email_sender$$;$notifi$$.email_sender=$email_sender$$;$notifi$$.email_receiver=$email_receiver$$;$notifi$$.title=$title$$;$notifi$$.content=$content$$;$notifi$$.user_created=$email_sender$$;$notifi$$.read=!0;$notifi$$.save(function($err$$){if($err$$)$fn$$&&$fn$$($err$$);else{global.alertMessage($email_sender$$);var $notifi_re$$=new message;$notifi_re$$.email_owner= $email_receiver$$;$notifi_re$$.email_sender=$email_sender$$;$notifi_re$$.email_receiver=$email_receiver$$;$notifi_re$$.title=$title$$;$notifi_re$$.content=$content$$;$notifi_re$$.user_created=$email_sender$$;$notifi_re$$.save(function($err$$){$err$$?$fn$$&&$fn$$($err$$):(message.sendMessage($notifi_re$$),global.alertMessage($email_receiver$$),$fn$$&&$fn$$(null,$notifi$$,$notifi_re$$))})}})};module.exports=message;