UNPKG

flexbiz-server

Version:

Flexible Server

9 lines (8 loc) 3.7 kB
'use strict';const model=global.getModel("message2"),m2s=global.getModel("message2setting"),User=global.getModel("user"),controller=require("../../controllers/controller"),message2=function($router$$){const $contr$$=new controller($router$$,model,"message2",{sort:{date_created:-1},notNeedRight:!0,users_receive_notification_default:[async $_setting_msg$$=>{var $sender_name_title$$=(await User.findOne({email:$_setting_msg$$.user_created},{name:1})||{}).name||$_setting_msg$$.user_created;let $body$$= $_setting_msg$$.text;$sender_name_title$$=`Tin nh\u1eafn t\u1eeb ${$sender_name_title$$}`;($_setting_msg$$=await m2s.findOne({id_app:$_setting_msg$$.id_app,id_link:$_setting_msg$$.id_link}))&&($body$$=`T\u1edbi nh\u00f3m ${$_setting_msg$$.title}: ${$body$$}`);return{title:$sender_name_title$$,body:$body$$,send_phu_trach:!0,send_attends:!0,send_to_user_created:!1}}],onFinding:async($user$$,$condition$$,$next$$)=>{$user$$.appAdmin||($condition$$.$and||($condition$$.$and=[]),$condition$$.$and.push({$or:[{attends:$user$$.email}, {phu_trach:$user$$.email},{sender:$user$$.email},{receiver:$user$$.email}]}));$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2(null,User,{where:{sender:"email"},fields:{sender_name:"name"}});await $items$$.asyncJoinModel2(null,User,{where:{receiver:"email"},fields:{receiver_name:"name"}});$items$$.forEach($item$$=>{$item$$.read&&"false"!==$item$$.read||($item$$.read=[]);let $read$$=$item$$.read;$read$$.find($r$$=>$r$$===$user$$.email)||($read$$.push($user$$.email), model.findOneAndUpdate({_id:$item$$._id.toString()},{read:$read$$},($e$$,$rs$$)=>{controller.pushNotification($contr$$,$rs$$,"read",null,!0)}))});$next$$(null,$items$$)},onCreating:async($user$$,$obj$$,$next$$)=>{let $_setting$$=await m2s.findOne({id_app:$user$$.current_id_app,id_link:$obj$$.id_link});if($_setting$$){let $attends$$=[...$_setting$$.attends];$_setting$$.phu_trach&&$attends$$.push($_setting$$.phu_trach);if(!$user$$.addAdmin&&0>$attends$$.indexOf($user$$.email))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n g\u1eedi tin nh\u1eafn trong nh\u00f3m n\u00e0y"); $attends$$=[...(new Set($attends$$))];$obj$$.attends=$attends$$}$user$$.addAdmin&&($obj$$.attends=$obj$$.attends||[],0>$obj$$.attends.indexOf($user$$.email)&&$obj$$.attends.push($user$$.email));$obj$$.sender=$user$$.email;return $next$$(null,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{$obj$$.id_link&&m2s.findOneAndUpdate({id_app:$obj$$.id_app,id_link:$obj$$.id_link},{latest_message:$obj$$.text,name_sender_latest_message:$user$$.name,date_updated:new Date,id_latest_message:$obj$$._id.toString()}, ($e$$,$rs$$)=>{$rs$$&&controller.pushNotification(global.controllers.MESSAGE2SETTING,$rs$$,"update",null,!0)});$next$$(null,$obj$$)}});$contr$$.createRoute("unread/:id_link",async($_s_req$$,$next$$)=>{const $id_link$$=$_s_req$$.params.id_link;var $condition$jscomp$1_user$$=$_s_req$$.user;$condition$jscomp$1_user$$={id_app:$_s_req$$.user.current_id_app,read:{$ne:$_s_req$$.user.email},user_created:{$ne:$_s_req$$.user.email},$or:[{attends:$condition$jscomp$1_user$$.email},{phu_trach:$condition$jscomp$1_user$$.email}]}; "all"!==$id_link$$?$condition$jscomp$1_user$$.id_link=$id_link$$:($_s_req$$=await m2s.find({id_app:$_s_req$$.user.current_id_app,title:{$nin:[null,"",void 0]},$or:[{phu_trach:$_s_req$$.user.email},{attends:$_s_req$$.user.email}]},{_id:1,id_link:1}),$condition$jscomp$1_user$$.id_link={$in:$_s_req$$.map($s$$=>$s$$.id_link||$s$$._id.toString())});try{const $unread$$=await model.countDocuments($condition$jscomp$1_user$$);return $next$$(null,{unread:$unread$$})}catch($e$$){$next$$($e$$)}});$contr$$.route()}; module.exports=message2;