UNPKG

flexbiz-server

Version:

Flexible Server

11 lines (10 loc) 4.68 kB
'use strict';const model=global.getModel("participant"),User=global.getModel("user"),usergroup=global.getModel("usergroup"),controller=require("../../controllers/controller"),async=require("async"),redisCache=require("../../libs/redis-cache"); module.exports=function($router$$){(new controller($router$$,model,"participant",{sort:{date_created:-1},unique:["id_app","email"],onFinding:async($user$$,$condition$$,$next$$)=>{if($condition$$.groups&&!$condition$$.group_id)try{let $groups$$=(await usergroup.getList($user$$.current_id_app,$condition$$.groups)).map($g$$=>$g$$._id);delete $condition$$.groups;$groups$$=$groups$$.concat([null,"",void 0]);$condition$$.group_id={$in:$groups$$};$next$$(null,$condition$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null, $condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onView:($user$$,$items$$,$next$$)=>{async.series({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"},{email2:"email2"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name);$ref$$.local&&!$ref$$.local.active&&($item$$.active=!1,model.updateOne({_id:$item$$._id},{active:!1}))}}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app, usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],function(){$callback$$()})},verified:$callback$$=>{mongoose.models.assuser_identity?$items$$.joinModel2($user$$.current_id_app,global.getModel("assuser_identity"),[{where:{email:"user_created"},fields:[{trang_thai_xac_thuc:"trang_thai"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name)}}],function(){$items$$.filter($i$$=>$i$$.trang_thai_xac_thuc).joinModel2(null,global.getModel("trangthai"), [{where:$item$$=>({ma_trang_thai:$item$$.trang_thai_xac_thuc,ma_ct:"ASSUSER_IDENTITY"}),fields:[{ten_trang_thai_xac_thuc:"ten_trang_thai"},"color"]}],function(){$callback$$()})}):$callback$$()}},()=>{$items$$.forEach($item$$=>{$item$$.real_name&&($item$$.name=$item$$.real_name);delete $item$$.password});$next$$(null,$items$$)})},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{if($data$$.phone){let $u$$=await global.getModel("user").findOne({$or:[{"local.phone":$data$$.phone},{email:$data$$.phone}]}); if($u$$&&$u$$.email!==$obj$$.email)return $next$$("S\u1ed1 \u0111i\u1ec7n tho\u1ea1i "+$data$$.phone+" \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng")}delete $data$$.password;if($data$$.admin&&!$obj$$.admin&&!$user$$.appAdmin)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1eb7t ng\u01b0\u1eddi n\u00e0y l\u00e0 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb");$next$$(null,$data$$,$obj$$)},onUpdated:async($u$jscomp$1_user$$,$obj$$,$next$$)=>{$obj$$.phone&&($u$jscomp$1_user$$=await User.findOne({email:$obj$$.email}))&& ($u$jscomp$1_user$$.local=$u$jscomp$1_user$$.local||{},$u$jscomp$1_user$$.local.phone=$obj$$.phone,await $u$jscomp$1_user$$.save(),redisCache.set("user",$u$jscomp$1_user$$.toObject(),function($e$$){$e$$&&console.error($e$$)}));$next$$(null,$obj$$)},onCreating:async($u$jscomp$2_user$$,$data$$,$next$$)=>{if($data$$.auto_create_user&&$data$$.password&&$data$$.phone&&($u$jscomp$2_user$$=await global.getModel("user").findOne({$or:[{"local.phone":$data$$.phone},{email:$data$$.phone}]}))&&$u$jscomp$2_user$$.email!== $data$$.email)return $next$$("S\u1ed1 \u0111i\u1ec7n tho\u1ea1i "+$data$$.phone+" \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng");$next$$(null,$data$$)},onCreated:async($user$$,$_obj$$,$next$$)=>{const $obj$$=await model.findOne({_id:$_obj$$._id});$obj$$.auto_create_user&&$obj$$.password?User.findOne({email:$obj$$.email},async($e$jscomp$1$$,$rs$$)=>{if($e$jscomp$1$$||$rs$$)return console.log("user exists, update participant password..."),$obj$$.password=$obj$$.generateHash($obj$$.email+$obj$$.password), await $obj$$.save(),$next$$(null,$_obj$$),console.log($e$jscomp$1$$||`User ${$obj$$.email} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$e$jscomp$1$$=new User;$e$jscomp$1$$.email=$obj$$.email;$e$jscomp$1$$.name=$obj$$.name;$e$jscomp$1$$.local={};$e$jscomp$1$$.local.email=$obj$$.email;$e$jscomp$1$$.local.name=$obj$$.name;$e$jscomp$1$$.local.phone=$obj$$.phone;$e$jscomp$1$$.local.password=$e$jscomp$1$$.generateHash($e$jscomp$1$$.email+$obj$$.password);$e$jscomp$1$$.save(($e$jscomp$0$$,$_user$$)=>{if($e$jscomp$0$$)return model.remove({_id:$obj$$._id}), $next$$(`Kh\u00f4ng th\u1ec3 t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ${$obj$$.email}, L\u1ed7i: ${$e$jscomp$0$$.message}`);redisCache.set("user",$_user$$.toObject(),function($e$$){$e$$&&console.error($e$$)});$next$$(null,$_obj$$)})}):$next$$(null,$_obj$$)}})).route()};