flexbiz-server
Version:
Flexible Server
12 lines (11 loc) • 5.13 kB
JavaScript
const model=global.getModel("colleague"),app=global.getModel("app"),User=global.getModel("user"),_Notification=global.getModel("notification"),emailer=require("../../libs/email"),loadTemplate=require("../../libs/load-template"),underscore=require("underscore"),async=require("async"),controller=require("../../controllers/controller"),validator=require("validator"),{onAfterCommit}=require("../../libs/sessionContext");
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"colleague",{require_id_app:!1,unique:["email_owner","email"]});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){$result$$.joinModel(void 0,User,[{akey:"email",bkey:"email",fields:[{name:"name",value:"name"},{name:"picture",value:"picture"}]},{akey:"email_owner",bkey:"email",fields:[{name:"name_owner",value:"name"},{name:"picture_owner",value:"picture"}]}],function(){$result$$.forEach(function($r$$){$r$$.picture||
($r$$.picture="/images/avatar.jpg");$r$$.name||($r$$.name=$r$$.email);$r$$.picture_owner||($r$$.picture_owner="/images/avatar.jpg");$r$$.name_owner||($r$$.name_owner=$r$$.email_owner);$r$$.user=$user$$;$r$$.email_owner==$user$$.email?($r$$.email_coll=$r$$.email,$r$$.picture_coll=$r$$.picture,$r$$.name_coll=$r$$.name):($r$$.email_coll=$r$$.email_owner,$r$$.picture_coll=$r$$.picture_owner,$r$$.name_coll=$r$$.name_owner)});$fn$$(null,$result$$)})};$contr_router$$.getting=function($user$$,$id$$,$next$$,
$obj$$){if($obj$$.email_owner!=$user$$.email)return $next$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p");$next$$()};$contr_router$$.finding=function($user$$,$condition$$,$next$$){$condition$$.me&&($user$$.me=!0,delete $condition$$.me);$condition$$.$or?($condition$$.$and=[{$or:$condition$$.$or},{$or:[{email_owner:$user$$.email},{$and:[{email:$user$$.email},{cancel:!1}]}]}],delete $condition$$.$or):$condition$$.$or=[{email_owner:$user$$.email},{$and:[{email:$user$$.email},{cancel:!1}]}];$next$$(null,
$condition$$)};$contr_router$$.found=function($user$$,$condition$$,$items$$,$next$$){$user$$.me&&$items$$.push({email:$user$$.email,email_owner:$user$$.email});$next$$(null,$items$$)};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.email_owner=$user$$.email;if(!validator.isEmail($obj$$.email))return $next$$("L\u1ed7i: Email n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb");$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){global.alertNotification($obj$$.email,
$obj$$.id_app);onAfterCommit(()=>{User.findOne({email:$obj$$.email_owner},{name:1},function($error$$,$u$$){$u$$&&loadTemplate("thu moi gia nhap nhom.html",{receiver_name:$obj$$.email,sender_name:$u$$.name},function($error$$,$html$$){if($error$$)return Logger.info($error$$);$html$$&&emailer.sendHtml({to:{name:$obj$$.email,address:$obj$$.email},subject:"Th\u01b0 m\u1eddi tham gia nh\u00f3m l\u00e0m vi\u1ec7c",html:$html$$},function($error$$){$error$$&&Logger.error("Khong the gui email thon tin tai khoan cho nguoi dung\n"+
$error$$)})})})});$next$$(null,$obj$$)};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if($user$$.email!=$obj$$.email_owner)return $next$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p");$next$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$next$$){onAfterCommit(()=>{app.find({user_created:$user$$.email,participants:{$elemMatch:{email:$obj$$.email}}},function($error$$,$results$$){async.each($results$$,function($a$$,$callback$$){var $participants$$=underscore.reject($a$$.participants,
function($p$$){return $p$$.email==$obj$$.email});app.findByIdAndUpdate($a$$._id,{participants:$participants$$},function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})},function($error$$){$error$$&&Logger.error($error$$)})})});$next$$(null,$obj$$)};$contr_router$$.router.route($contr_router$$.route_name+"/active/:id").get(function($req$$,$res$$){var $id$$=$req$$.params.id,$email$$=$req$$.user.email;model.findOne({_id:$id$$,email:$email$$,active:!1,cancel:!1},function($error$$,$coll$$){if($error$$)return $res$$.send(400,
$error$$);$coll$$?($coll$$.active=!0,$coll$$.save(function($err$$){if($err$$)return $res$$.send(400,$err$$);_Notification.createNotification($email$$,$coll$$.email_owner,"Ch\u1ea5p nh\u1eadn gia nh\u1eadp m\u1ea1ng c\u1ee7a b\u1ea1n","\u0111\u00e3 ch\u1ea5p nh\u1eadn gia nh\u1eadp m\u1ea1ng c\u1ee7a b\u1ea1n");$res$$.send("ok")})):$res$$.send(400,"Not found colleague "+$id$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/notaccept/:id").get(function($req$$,$res$$){var $id$$=$req$$.params.id,
$email$$=$req$$.user.email;model.findOne({_id:$id$$,email:$email$$},function($error$$,$coll$$){if($error$$)return $res$$.send(400,$error$$);$coll$$?($coll$$.active=!1,$coll$$.cancel=!0,$coll$$.save(function($err$$){if($err$$)return $res$$.send(400,$err$$);_Notification.createNotification($email$$,$coll$$.email_owner,"Kh\u00f4ng ch\u1ea5p nh\u1eadn gia nh\u1eadp m\u1ea1ng c\u1ee7a b\u1ea1n","\u0111\u00e3 kh\u00f4ng ch\u1ea5p nh\u1eadn gia nh\u1eadp m\u1ea1ng c\u1ee7a b\u1ea1n");$res$$.send("ok")})):
$res$$.send(400,"Not found colleague "+$id$$)})})};