UNPKG

flexbiz-server

Version:

Flexible Server

8 lines (7 loc) 3.15 kB
'use strict';const model=global.getModel("comment"),Follow=global.getModel("follow"),User=global.getModel("user"),controller=require("../../controllers/controller"),underscore=require("underscore"); module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"comment",{notNeedRight:!0,sort:{date_created:-1},onFinding:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)}});$contr_router$$.creating=($user$$,$obj$$,$fn$$)=>{$fn$$(null,$obj$$)};$contr_router$$.deleting=($user$$,$obj$$,$fn$$)=>{const $adminUsers$$=configs.admins;$user$$.email==$obj$$.user_created||underscore.contains($adminUsers$$,$user$$.email)?$fn$$(null,$obj$$):$fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a n\u1ed9i dung n\u00e0y")}; $contr_router$$.updating=($user$$,$data$$,$obj$$,$fn$$)=>{const $adminUsers$$=configs.admins;$user$$.email==$obj$$.user_created||underscore.contains($adminUsers$$,$user$$.email)?$fn$$(null,$data$$,$obj$$):$fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt n\u1ed9i dung n\u00e0y")};$contr_router$$.created=async($query_r_user$$,$obj_created$$,$fn$$)=>{if($obj_created$$.is_reply){var $obj$$={};underscore.extend($obj$$,$obj_created$$);/<[a-z][\s\S]*>/i.test($obj$$.content)||($obj$$.content=$obj$$.content.replace(/\n/g, "<br/>"));$query_r_user$$={$or:[{_id:$obj$$.id_topic}],_id:{$ne:$obj$$._id}};$obj$$.id_topic&&($query_r_user$$.$or.push({id_topic:$obj$$.id_topic}),$obj$$.url_topic="#!/comment/view/"+$obj$$.id_topic);$obj$$.url_topic||($obj$$.url_topic="");model.find($query_r_user$$,{user_created:1}).lean().exec(async($err_es$$,$emails$$)=>{if($err_es$$)return console.log($err_es$$);$emails$$=$emails$$.map($item$$=>$item$$.user_created);($err_es$$=$obj$$.content.match(/(@[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi))&& $err_es$$.forEach($e$$=>{$emails$$.push($e$$.substring(1))});$obj$$.attends&&$obj$$.attends.forEach($ind$$=>{$emails$$.push($ind$$)});if($obj_created$$.id_reply)try{(await model.getRelativeComments($obj_created$$.id_reply)).forEach($_comment$$=>{$emails$$.push($_comment$$.user_created)})}catch($e$$){console.log("error alert replay comment",$e$$.message)}$obj_created$$.user_created_obj&&$emails$$.push($obj$$.user_created_obj);if($obj_created$$.id_product)try{let $_follows$$=await Follow.asyncFind({id_object:$obj_created$$.id_product}); $emails$$=$emails$$.concat($_follows$$.map($f$$=>$f$$.user_created))}catch($e$$){console.log($e$$)}$emails$$=underscore.uniq($emails$$);let $msg$$={_id:$obj_created$$._id,code:"comment",action:"NEW"};$msg$$.title=`Comment '${$obj$$.title||$obj$$.ten_vt}'`;$msg$$.body=$obj$$.content;$msg$$.id_product=$obj_created$$.id_product;$msg$$.colection_name_product=$obj_created$$.colection_name_product;$emails$$.forEach($email$$=>{User.emitEvent($email$$,"comment:new",$msg$$,!0,null);$email$$!==$obj$$.user_created&& global.createNotification($obj$$.user_updated||"SYSTEM",$email$$,$msg$$.title,$msg$$.body,$e$$=>{$e$$&&console.log($e$$)},$msg$$,!1,null)})})}$fn$$(null,$obj_created$$)};$contr_router$$.on("deleted",$obj$$=>{model.deleteMany({id_topic:$obj$$._id},$er$$=>{$er$$&&console.log($er$$)})});$contr_router$$.route()};