UNPKG

flexbiz-server

Version:

Flexible Server

13 lines (12 loc) 5.88 kB
'use strict';const async=require("async"),_=require("lodash"),moment=require("moment"),permission=require("../libs/permission"),{JSONParser}=require("../libs/utils"),{postData,pushNotification}=require("./controllerUtils"),updateFieldHanlder=($ctrl$$,$req$$,$mainCallback$$)=>{const $model$$=$ctrl$$.model;let $field$$;async.series([function($callback$$){$field$$=$req$$.params.field;if(!_.has($model$$.schema.paths,$field$$))return $callback$$({error:"Field "+$field$$+" kh\u00f4ng t\u1ed3n t\u1ea1i"}); var $condition_name_cached$$=$model$$.collection.name;$req$$.user.current_id_app&&($condition_name_cached$$+=$req$$.user.current_id_app);delete global.cacheDatas[$condition_name_cached$$];$condition_name_cached$$={};for(let $k$$ in $req$$.query)if("id_app"!=$k$$&&"access_token"!=$k$$)if("_id"==$k$$&&mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=global.mongoose.Types.ObjectId($req$$.query._id);$condition_name_cached$$._id=$id$$}catch($error$$){console.error("updateField condition", $error$$)}else if("q"==$k$$&&$req$$.query[$k$$])$condition_name_cached$$=JSONParser($req$$.query[$k$$]);else if("tu_ngay"==$k$$&&!0===_.has($model$$.schema.paths,"ngay_ct")){var $val_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();$condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$gte=$val_val$$:$condition_name_cached$$.ngay_ct={$gte:$val_val$$}}else"den_ngay"==$k$$&&!0===_.has($model$$.schema.paths,"ngay_ct")?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(), $condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$lte=$val_val$$:$condition_name_cached$$.ngay_ct={$lte:$val_val$$}):!0===_.has($model$$.schema.paths,$k$$)&&($condition_name_cached$$[$k$$]=$req$$.query[$k$$]);!0===_.has($model$$.schema.paths,"id_app")&&($condition_name_cached$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition_name_cached$$,function($e$$,$condition$jscomp$0$$){setImmediate(()=>{if($e$$)return console.error("updateField find", $e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$0$$,function($e$$,$condition$$){if($e$$)return console.error("updateField dynamicFinding",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$callback$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$0$$,$callback$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user, $condition_name_cached$$,function($e$$,$condition$$){if($e$$)return console.error("updateField dynamicFinding",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$callback$$()},{req:$req$$}):($req$$.condition=$condition_name_cached$$,$callback$$())},function($callback$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>{if($e$$)return $callback$$({error:$e$$.error||$e$$,code:$e$$.code});if(!$admin$$)return $callback$$({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"}); $callback$$()})})},function($callback$jscomp$0$$){let $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===_.has($model$$.schema.paths,"ngay_ct")&&$query$$.sort({ngay_ct:1});$query$$.lean().exec(function($e$jscomp$1$$,$obj4view$$){setImmediate(()=>{if($e$jscomp$1$$)return console.error("updateField query",$e$jscomp$1$$),$e$jscomp$1$$.error?$callback$jscomp$0$$($e$jscomp$1$$): $callback$jscomp$0$$({error:$e$jscomp$1$$.message||$e$jscomp$1$$.error||$e$jscomp$1$$});setImmediate(()=>{global.getModel("log").create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"UPDATE FIELD:"+$field$$,data:{condition:JSON.stringify($condition$$)}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $tu_so$$=Number($req$$.query.tu_so);$tu_so$$||($tu_so$$=1);let $den_so$$=$req$$.query.den_so,$tien_to$$=$req$$.query.tien_to,$hau_to$$=$req$$.query.hau_to,$gia_tri$$;for(let $i$$= 0;$i$$<$obj4view$$.length;$i$$++)$gia_tri$$=$tu_so$$+$i$$+"",$den_so$$&&($gia_tri$$="0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.mapSeries($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{delete $obj$$.__v;$model$$.updateOne({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$,$rs$$){setImmediate(async()=>{if($e$jscomp$0$$||!$rs$$)return $callback$$($e$jscomp$0$$); await $ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$rs$$)},{req:$req$$}):$callback$$(null,$rs$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error("updateField",$e$jscomp$0$$),$e$jscomp$0$$.error?$callback$jscomp$0$$($e$jscomp$0$$):$callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated", $rs$$);$rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=$o$$.toObject());return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error("updateField onview",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$&&$viewValue$$.forEach($r$$=>{pushNotification($ctrl$$,$r$$,"update",null,!0,{exclude_token:$req$$.query.access_token})});$req$$.result=$rs$$;$callback$jscomp$0$$()})},{req:$req$$})})})})})}], $e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.result)})};module.exports=updateFieldHanlder;