flexbiz-server
Version:
Flexible Server
6 lines (5 loc) • 2.44 kB
JavaScript
const model=global.getModel("message2setting"),controller=require("../../controllers/controller"),Message2=global.getModel("message2"),underscore=require("underscore"),message2setting=function($router$$){(new controller($router$$,model,"message2setting",{sort:{date_updated:-1},unique:["id_link"],notNeedRight:!0,users_receive_notification_default:[async()=>({send_phu_trach:!0,send_attends:!0})],onView:async($user$$,$items$$,$next$$)=>{await $items$$.filter($item$$=>$item$$.phu_trach).asyncJoinModel2(null,
"user",{where:{phu_trach:"email"},fields:{ten_phu_trach:"name"}});for(let $item$$ of $items$$)if($item$$.attends=$item$$.attends||[],$item$$.phu_trach||($item$$.phu_trach=$item$$.user_created),$item$$.attends.push($item$$.phu_trach),$item$$.attends=[...(new Set($item$$.attends))],$item$$.attends.length<=2){var $chatWith_p$$=$item$$.attends.find($a$$=>$a$$!=$user$$.email);$chatWith_p$$&&($item$$.chatWith=$chatWith_p$$,$chatWith_p$$=await global.getModel("user").findOne({email:$chatWith_p$$}).lean())&&
($item$$.chatWith_name=$chatWith_p$$.name)}$next$$(null,$items$$)},onFinding:async($user$$,$condition$$,$next$$)=>{$user$$.current_app_info.appAdmin||($condition$$.$and||($condition$$.$and=[]),$condition$$.$and.push({$or:[{attends:$user$$.email},{phu_trach:$user$$.email},{user_created:$user$$.email}]}));$next$$(null,$condition$$)},onCreating:($user$$,$data$$,$next$$)=>{$data$$.id_link||($data$$.id_link=(new Date).getTime().toString(),$data$$.code_link="other");$data$$.phu_trach=$data$$.phu_trach||
$user$$.email;$next$$(null,$data$$)},onUpdating:($user$$,$new_data$$,$old_data$$,$next$$)=>!underscore.contains(configs.admins,$user$$.email)&&$old_data$$.phu_trach&&$old_data$$.phu_trach!==$user$$.email?$next$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt nh\u00f3m n\u00e0y"):$next$$(null,$new_data$$,$old_data$$),onUpdated:async($user$$,$obj$$,$next$$)=>{Message2.updateMany({id_link:$obj$$._id.toString()},{$set:{attends:$obj$$.attends}}).then($rs$$=>{Logger.info("update message2",$rs$$)});$next$$(null,
$obj$$)},onDeleting:($user$$,$data$$,$next$$)=>!underscore.contains(configs.admins,$user$$.email)&&$data$$.phu_trach&&$data$$.phu_trach!==$user$$.email?$next$$("B\u1ea1n kh\u00f4ng th\u1ec3 xo\u00e1 nh\u00f3m n\u00e0y"):$next$$(null,$data$$),onDeleted:($user$$,$data$$,$next$$)=>{Message2.deleteMany({id_link:$data$$._id.toString()});return $next$$(null,$data$$)}})).route()};module.exports=message2setting;