UNPKG

kpiplus

Version:

KPI+

1 lines 3.62 kB
var model=require("../../models/colleague"),app=require("../../models/app"),User=require("../../models/user"),Notification=require("../../models/notification"),emailer=require("../../libs/email"),systemConfig=require("../../configs"),loadTemplate=require("../../libs/load-template"),underscore=require("underscore"),async=require("async"),controller=require("../../controllers/controller"),validator=require("validator");module.exports=function(e){var n=new controller(e,model,"colleague",{require_id_app:!1,unique:["email_owner","email"]});n.route(),n.view=function(e,n,i){n.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(a){n.forEach(function(n){n.picture||(n.picture="/images/avatar.jpg"),n.name||(n.name=n.email),n.picture_owner||(n.picture_owner="/images/avatar.jpg"),n.name_owner||(n.name_owner=n.email_owner),n.user=e,n.email_owner==e.email?(n.email_coll=n.email,n.picture_coll=n.picture,n.name_coll=n.name):(n.email_coll=n.email_owner,n.picture_coll=n.picture_owner,n.name_coll=n.name_owner)}),i(null,n)})},n.getting=function(e,n,i,a){if(a.email_owner!=e.email)return i("Không được phép");i()},n.finding=function(e,n,i){n.me&&(e.me=!0,delete n.me),n.$or?(n.$and=[{$or:n.$or},{$or:[{email_owner:e.email},{$and:[{email:e.email},{cancel:!1}]}]}],delete n.$or):n.$or=[{email_owner:e.email},{$and:[{email:e.email},{cancel:!1}]}],i(null,n)},n.found=function(e,n,i,a){if(e.me){var r={email:e.email,email_owner:e.email};i.push(r)}a(null,i)},n.creating=function(e,n,i){if(n.email_owner=e.email,!validator.isEmail(n.email))return i("Lỗi: Email này không có giá trị");i(null,n)},n.created=function(e,n,i){alertNotification(n.email);systemConfig.domain;User.findOne({email:n.email_owner},{name:1},function(e,i){i&&loadTemplate("thu moi gia nhap nhom.html",{receiver_name:n.email,sender_name:i.name},function(e,i){if(e)return console.log(e);i&&emailer.sendHtml({to:{name:n.email,address:n.email},subject:"Thư mời tham gia nhóm làm việc",html:i},function(e,n){e&&console.error("Khong the gui email thon tin tai khoan cho nguoi dung\n"+e)})})}),i(null,n)},n.deleting=function(e,n,i){if(e.email!=n.email_owner)return i("Không được phép");i(null,n)},n.deleted=function(e,n,i){app.find({user_created:e.email,participants:{$elemMatch:{email:n.email}}},function(e,a){async.each(a,function(e,i){var a=underscore.reject(e.participants,function(e){return e.email==n.email});app.findByIdAndUpdate(e._id,{participants:a},function(e,n){if(e)return i(e);i()})},function(e){if(e)return i(e);i(null,n)})})},n.router.route(n.route_name+"/active/:id").get(function(e,n,i){var a=e.params.id,r=e.user.email;model.findOne({_id:a,email:r,active:!1,cancel:!1},function(e,i){if(e)return n.send(400,e);i?(i.active=!0,i.save(function(e){if(e)return n.send(400,e);Notification.createNotification(r,i.email_owner,"Chấp nhận gia nhập mạng của bạn","đã chấp nhận gia nhập mạng của bạn"),n.send("ok")})):n.send(400,"Not found colleague "+a)})}),n.router.route(n.route_name+"/notaccept/:id").get(function(e,n,i){var a=e.params.id,r=e.user.email;model.findOne({_id:a,email:r},function(e,i){if(e)return n.send(400,e);i?(i.active=!1,i.cancel=!0,i.save(function(e){if(e)return n.send(400,e);Notification.createNotification(r,i.email_owner,"Không chấp nhận gia nhập mạng của bạn","đã không chấp nhận gia nhập mạng của bạn"),n.send("ok")})):n.send(400,"Not found colleague "+a)})})};