flexbiz-server
Version:
Flexible Server
12 lines (11 loc) • 5.53 kB
JavaScript
const async=require("async"),_=require("lodash"),moment=require("moment"),permission=require("../libs/permission"),utils=require("../libs/utils"),{JSONParser}=require("../libs/utils"),{onAfterCommit}=require("../libs/sessionContext.js"),queryBuilding=require("../libs/queryBuilding"),updateBookHanlder=($ctrl$$,$req$$,$mainCallback$$)=>{let $model$$=$ctrl$$.model;async.series([function($callback$$){setImmediate(async()=>{if(!$ctrl$$.post)return $callback$$({error:"Ch\u1ee9c n\u0103ng n\u00e0y kh\u00f4ng c\u00f3 t\u00ednh n\u0103ng post s\u1ed5 s\u00e1ch"});
var $condition_newFilters$$={};for(var $k_ngay_ks_tu_ngay$$ in $req$$.query)if($k_ngay_ks_tu_ngay$$!="id_app"&&$k_ngay_ks_tu_ngay$$!="access_token")if($k_ngay_ks_tu_ngay$$=="_id"&&global.mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=global.mongoose.Types.ObjectId($req$$.query._id);$condition_newFilters$$._id=$id$$}catch($error$$){Logger.error("\u274c [updateBookhandler] postAgain condition",$error$$)}else{if($k_ngay_ks_tu_ngay$$=="q"&&$req$$.query[$k_ngay_ks_tu_ngay$$])try{$condition_newFilters$$=
JSONParser($req$$.query[$k_ngay_ks_tu_ngay$$]);continue}catch($e$$){return Logger.error("\u274c [updateBookhandler] postAgain parse condition",$e$$),$callback$$($e$$)}if($k_ngay_ks_tu_ngay$$=="tu_ngay"&&_.has($model$$.schema.paths,"ngay_ct")===!0){var $val_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();$condition_newFilters$$.ngay_ct?$condition_newFilters$$.ngay_ct.$gte=$val_val$$:$condition_newFilters$$.ngay_ct={$gte:$val_val$$}}else $k_ngay_ks_tu_ngay$$=="den_ngay"&&_.has($model$$.schema.paths,
"ngay_ct")===!0?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition_newFilters$$.ngay_ct?$condition_newFilters$$.ngay_ct.$lte=$val_val$$:$condition_newFilters$$.ngay_ct={$lte:$val_val$$}):_.has($model$$.schema.paths,$k_ngay_ks_tu_ngay$$)===!0&&($condition_newFilters$$[$k_ngay_ks_tu_ngay$$]=$req$$.query[$k_ngay_ks_tu_ngay$$])}$condition_newFilters$$=queryBuilding.convertLegacyQuery(_.cloneDeep($condition_newFilters$$));$condition_newFilters$$=queryBuilding.buildSearchQuery($condition_newFilters$$);
_.has($model$$.schema.paths,"id_app")===!0&&($condition_newFilters$$.id_app=$req$$.user.current_id_app);if(_.has($model$$.schema.paths,"ngay_ct")){if(!$condition_newFilters$$.ngay_ct)return Logger.error("\u274c [updateBookhandler] Thi\u1ebfu \u0111i\u1ec1u ki\u1ec7n ng\u00e0y ch\u1ee9ng t\u1eeb",$condition_newFilters$$),$callback$$({error:"\u0110i\u1ec1u ki\u1ec7n c\u1eadp nh\u1eadt l\u1ea1i s\u1ed5 s\u00e1ch thi\u1ebfu ng\u00e0y ch\u1ee9ng t\u1eeb"});$k_ngay_ks_tu_ngay$$=$condition_newFilters$$.ngay_ct.$lte||
$condition_newFilters$$.ngay_ct.$lt;if(!$k_ngay_ks_tu_ngay$$)return $callback$$({error:"\u0110i\u1ec1u ki\u1ec7n ng\u00e0y ch\u1ee9ng t\u1eeb kh\u00f4ng h\u1ee3p l\u1ec7"});$k_ngay_ks_tu_ngay$$=new Date($k_ngay_ks_tu_ngay$$);if($k_ngay_ks_tu_ngay$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$k_ngay_ks_tu_ngay$$}))return Logger.error("\u274c [updateBookhandler] \u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y",$k_ngay_ks_tu_ngay$$),$callback$$({error:`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($k_ngay_ks_tu_ngay$$).format("DD/MM/YYYY")}`})}$ctrl$$.finding?
$ctrl$$.finding($req$$.user,$condition_newFilters$$,function($e$$,$condition$$){setImmediate(()=>{if($e$$)return Logger.error("\u274c [updateBookhandler] postAgain finding",$e$$),$callback$$({error:$e$$.message||$e$$.error||$e$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$$,function($e$$,$condition$$){if($e$$)return Logger.error("\u274c [updateBookhandler] postAgain dynamicFinding",$e$$),$callback$$({error:$e$$.message||$e$$.error||$e$$});$req$$.condition=$condition$$;$callback$$()},
{req:$req$$}):($req$$.condition=$condition$$,$callback$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition_newFilters$$,function($e$$,$condition$$){if($e$$)return Logger.error("\u274c [updateBookhandler] postAgain dynamicFinding",$e$$),$callback$$({error:$e$$.message||$e$$.error||$e$$});$req$$.condition=$condition$$;$callback$$()},{req:$req$$}):($req$$.condition=$condition_newFilters$$,$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$$){const $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());onAfterCommit(()=>{let $data_log$$=
{...$req$$.query};delete $data_log$$.access_token;$req$$.user&&$ctrl$$.name!=="log"&&$ctrl$$.name!=="labelinfo"&&$ctrl$$.name!=="listinfo"&&$ctrl$$.name!=="reportinfo"&&$ctrl$$.name!=="moduleinfo"&&$ctrl$$.name!=="options"&&global.getModel("log").create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"POSTAGAIN",data:{condition:JSON.stringify($data_log$$)}},$req$$.user.email,$req$$.user_agent,$req$$)});$ctrl$$.postAgainHandler($req$$.user,$condition$$,($e$$,$rs$$)=>{if($e$$)return $callback$$({error:$e$$.message||
$e$$.error||$e$$});$req$$.result=$rs$$;$callback$$()},{req:$req$$})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.result)})};module.exports=updateBookHanlder;