UNPKG

flexbiz-server

Version:

Flexible Server

37 lines (36 loc) 18.5 kB
const async=require("async"),Moment=require("moment-timezone"),moment=$time$$=>Moment.tz($time$$,configs.timezone||"Asia/Ho_Chi_Minh"),numeral=require("numeral"),_=require("lodash"),validate=require("../libs/validate"),permission=require("../libs/permission"),{onAfterCommit,executeInTransaction}=require("../libs/sessionContext.js"),{evalute,convertObjectIdsToStrings}=require("../libs/utils"),{asyncBodyToJson,ERRORS,getNextSequence,isExists,createIdRef,fields_sync_master_detail,postData,runWebhooks, cleanDataByMongooseSchema}=require("./controllerUtils"),createHandler=async($ctrl$$,$req$$,$callback$$)=>{$req$$.headers=$req$$.headers||{};$req$$.body=$req$$.body||{};$req$$.query=$req$$.query||{};$req$$.data=$req$$.data||{};let {user:$user$$,data:$data$$,id_be_supply_by_user:$id_be_supply_by_user$$,action:$action$$}=$req$$;$action$$||="add";let $listinfo_code$$=$req$$?.headers?.["listinfo-code"]||$req$$?.headers?.["Listinfo-Code"]||$req$$.query?.["listinfo-code"]||$data$$?.listinfo_code;if($listinfo_code$$&& $listinfo_code$$!=$ctrl$$.name){Logger.warn(`[createHandler] listinfo_code (${$listinfo_code$$}) # controller code (${$ctrl$$.name}). \u0110ang ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7 c\u1ee7a listinfo_code`);var $api_code_listinfo$$=await global.getModel("listinfo").findOne({code:$listinfo_code$$},{api_code:1,code:1}).lean();$api_code_listinfo$$?($api_code_listinfo$$=$api_code_listinfo$$.api_code||$api_code_listinfo$$.code,$api_code_listinfo$$!=$ctrl$$.name&&(Logger.warn(`[createHandler] api_code (${$api_code_listinfo$$}) v\u00e0 controller name (${$ctrl$$.name}) kh\u00f4ng kh\u1edbp nhau. S\u1eeda d\u1ee5ng controller name (${$ctrl$$.name}) cho listinfo_code`), $listinfo_code$$=$ctrl$$.name)):(Logger.warn(`[createHandler] listinfo_code (${$listinfo_code$$}) kh\u00f4ng t\u1ed3n t\u1ea1i. S\u1eeda d\u1ee5ng controller name (${$ctrl$$.name}) cho listinfo_code`),$listinfo_code$$=$ctrl$$.name)}$listinfo_code$$=$listinfo_code$$||$ctrl$$.name;$req$$.headers=$req$$.headers||{};$req$$.headers["Listinfo-Code"]=$listinfo_code$$;$data$$.listinfo_code=$listinfo_code$$;try{const $model$$=$ctrl$$.model;let $voucher_options$$=(await global.getModel("options").findOne({id_app:$user$$.current_id_app, id_func:$listinfo_code$$.toLowerCase()}).lean()||{}).option;$voucher_options$$||$ctrl$$.name===$listinfo_code$$||($voucher_options$$=(await global.getModel("options").findOne({id_app:$user$$.current_id_app,id_func:$ctrl$$.name}).lean()||{}).option);const $schema_paths$$=$model$$.schema.paths;let $v_data$$;try{$v_data$$=await asyncBodyToJson($data$$,$ctrl$$,$user$$.current_id_app,$voucher_options$$)}catch($e$$){return $callback$$($e$$.message||$e$$.error||$e$$)}$schema_paths$$.ma_ct&&$ctrl$$.options.isVoucher&& ($v_data$$.ma_ct=$ctrl$$.name.toUpperCase());delete $v_data$$.session_created;delete $v_data$$.session_updated;$req$$&&$schema_paths$$.session_created&&($v_data$$.session_created=($req$$.cookies||{}).uid);if($ctrl$$.options.requireRecaptchaToken&&configs.GOOGLE_RECAPTCHA_SECRET_KEY){if(!$v_data$$["g-recaptcha-response"])return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u g-recaptcha-response");try{await permission.verifyReCaptcha($v_data$$["g-recaptcha-response"])}catch($e$$){return $callback$$($e$$.message|| $e$$.error||$e$$)}}let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_.isFunction($requireOtp$$)&&($requireOtp$$=$requireOtp$$($v_data$$,{action:$action$$,user:$user$$}));if($requireOtp$$&&$action$$!="import")try{await permission.verifyOTP($user$$.email,$v_data$$["otp-id"],$v_data$$["otp-code"])}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$,code:ERRORS.ERR_VERIFY_OTP})}$schema_paths$$.id_app&&($v_data$$.id_app=$user$$.current_id_app);if($ctrl$$.dynamicCreating)try{$v_data$$= await new Promise(($resolve$$,$reject$$)=>{try{$ctrl$$.dynamicCreating($user$$,$v_data$$,function($error$$,$v_data$$){if($error$$)return $reject$$($error$$);$resolve$$($v_data$$)},{listinfo_code:$listinfo_code$$,req:$req$$})}catch($e$$){return $reject$$($e$$)}})}catch($e$$){return $callback$$($e$$.message||$e$$.error||$e$$)}$v_data$$=cleanDataByMongooseSchema($v_data$$,$model$$.schema);const $obj$$=new $model$$;$schema_paths$$.exfields&&($obj$$.exfields=$v_data$$.exfields||{});for(let $f$$ in $v_data$$)$schema_paths$$[$f$$]&& ($obj$$.set($f$$,$v_data$$[$f$$]),$f$$!=="exfields"||$obj$$.exfields||($obj$$.exfields={}));$schema_paths$$.id_app&&($obj$$.id_app=$user$$.current_id_app);const $checkVoucherNumber$$=$callback$$=>{if($model$$.schema.paths.ngay_ct&&$obj$$.ngay_ct)if($voucher_options$$&&($voucher_options$$?.trang_thai_create_voucher_numbers?.length==0||$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$$.trang_thai)>=0)&&$voucher_options$$.check_so_ct&&$voucher_options$$.check_so_ct!=="0"){let $query_check$$= {id_app:$obj$$.id_app,so_ct:$obj$$.so_ct,listinfo_code:$listinfo_code$$},$tu_ngay$$,$den_ngay$$;switch($voucher_options$$.check_so_ct){case "1":$tu_ngay$$=moment($obj$$.ngay_ct).startOf("day").toDate();$den_ngay$$=moment($obj$$.ngay_ct).endOf("day").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "2":$tu_ngay$$=moment($obj$$.ngay_ct).startOf("month").toDate();$den_ngay$$=moment($obj$$.ngay_ct).endOf("month").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$}; break;case "3":$tu_ngay$$=moment($obj$$.ngay_ct).startOf("quarter").toDate();$den_ngay$$=moment($obj$$.ngay_ct).endOf("quarter").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "8":$tu_ngay$$=moment($obj$$.ngay_ct).startOf("year").toDate(),$den_ngay$$=moment($obj$$.ngay_ct).endOf("year").toDate(),$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$}}$model$$.findOne($query_check$$,{so_ct:1}).lean().then($rs$$=>{if($rs$$){let $msgError$$="S\u1ed1 ch\u1ee9ng t\u1eeb "+ $obj$$.so_ct+" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ch\u1ecdn m\u1ed9t s\u1ed1 ch\u1ee9ng t\u1eeb kh\u00e1c";if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else $callback$$()}).catch($e$$=>{Logger.error($e$$)})}else $callback$$();else $callback$$()},$File$$=global.getModel("file"),$Support$$=global.getModel("support");async.waterfall([function($callback$$){setImmediate(async function(){let $notNeedRight$$= await $ctrl$$.notNeedRight($user$$,{action:$action$$,obj:$obj$$});permission.hasRight($obj$$.id_app,$user$$.email,$ctrl$$.module,$action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($error$$||!$hr$$)return $error$$=$error$$||"",$callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE});$ctrl$$.checkData($c_app$$,$obj$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$$,$obj$$,function($error$$,$_obj$$){if($error$$)return $callback$$($error$$); for(let $f$$ of Object.keys($schema_paths$$))$error$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$$.set($f$$,$error$$);$callback$$(null,$obj$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$$)})})},{data:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},($obj$$,$callback$$)=>{setImmediate(()=>{let $ma_ct$$=$listinfo_code$$||$ctrl$$.name;const $condition_qct$$={status:!0,id_app:$obj$$.id_app,cac_ma_ct:$ma_ct$$.toLowerCase()};let $_options_qct$$;$_options_qct$$= $obj$$.toObject?convertObjectIdsToStrings($obj$$.toObject()):{...$obj$$};let $keys_options$$=Object.keys($_options_qct$$);global.getModel("dmqct").find($condition_qct$$).lean().then($rs$$=>{setImmediate(()=>{let $qcts$$=($rs$$||[]).filter($qct$$=>$qct$$.field!=="so_ct"&&!$obj$$[$qct$$.field]&&$model$$.schema.paths[$qct$$.field]);$qcts$$=$qcts$$.filter($qct$$=>{if($qct$$.dieu_kien&&$keys_options$$.length>0)try{let $str_func$$=$qct$$.dieu_kien;$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`); return $str_func$$.indexOf("async ")>0?!1:evalute($str_func$$,{...$_options_qct$$,master:{...$_options_qct$$},moment,numeral})}catch($e$$){return Logger.error("Error find quyen chung tu",$e$$.message,$qct$$.dieu_kien),!1}else return!0});async.mapSeries($qcts$$,($qct$$,$cb$$)=>{let $field$$=$qct$$.field,$_options$$={...$_options_qct$$};$_options$$.id_qct=$qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,$count$$<10)},function($callback$$){getNextSequence($obj$$.id_app,$ma_ct$$, $field$$,function($e$$,$rs$$){setImmediate(async()=>{if($e$$)return $callback$$($e$$);$obj$$[$field$$]=$rs$$[$field$$];$qct$$.check_duplicate?await $model$$.findOne({id_app:$obj$$.id_app,[$field$$]:$obj$$[$field$$]},{[$field$$]:1}).lean()?$count$$>=9?$callback$$(`Kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o gi\u00e1 tr\u1ecb cho field ${$field$$}. Gi\u00e1 tr\u1ecb "${$obj$$[$field$$]}" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ki\u1ec3m tra l\u1ea1i th\u00f4ng s\u1ed1 quy\u1ec3n ch\u1ee9ng t\u1eeb sao cho gi\u00e1 tr\u1ecb s\u1ebd t\u1ea1o ra kh\u00f4ng b\u1ecb tr\u00f9ng v\u1edbi gi\u00e1 tr\u1ecb \u0111\u00e3 c\u00f3`): ($count$$++,$callback$$()):($count$$=99999,$callback$$()):($count$$=99999,$callback$$())})},$_options$$)},function($err$$){$cb$$($err$$)})},$e$$=>{$callback$$($e$$)})})}).catch($e$$=>{Logger.error($e$$)})})},$callback$$=>{if((!$voucher_options$$?.trang_thai_create_voucher_numbers||$voucher_options$$?.trang_thai_create_voucher_numbers.length==0||$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$$.trang_thai)>=0)&&$model$$.schema.paths.so_ct)if($obj$$.so_ct&&$obj$$.so_ct.toUpperCase()!== ($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$obj$$.so_ct.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkVoucherNumber$$($error$$=>{$callback$$($error$$)});else{let $count$$=0;async.whilst(function($cb$$){$cb$$(null,$count$$<100)},function($callback$$){getNextSequence($obj$$.id_app,$listinfo_code$$||$ctrl$$.name,"so_ct",function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$obj$$.so_ct=$rs$$.so_ct;$checkVoucherNumber$$($error$$=>{$error$$?$count$$>=99?$callback$$($error$$):($count$$++,$callback$$()): ($count$$=99999,$callback$$())})},$obj$$)},function($err$$){$callback$$($err$$)})}else $callback$$()},function($callback$$){setImmediate(async()=>{if($model$$.schema.paths.ma_dvcs&&$ctrl$$.name!=="dvcs")try{if($obj$$.ma_dvcs)if(global.mongoose.Types.ObjectId.isValid($obj$$.ma_dvcs)){let $_id_dvcs$$=global.mongoose.Types.ObjectId($obj$$.ma_dvcs);await global.getModel("dvcs").findOne({_id:$_id_dvcs$$}).lean()?$callback$$():global.getModel("dvcs").create({_id:$_id_dvcs$$,id_app:$obj$$.id_app,ma_dvcs:"IMPORTED", ten_dvcs:"Imported"},$e$$=>{$e$$&&Logger.error("Can't import dvcs",$e$$);$callback$$()})}else $callback$$();else{let $dvcs$$=await global.getModel("dvcs").findOne({id_app:$obj$$.id_app,status:!0}).inTxn().lean();$dvcs$$||($dvcs$$=await global.getModel("dvcs").create({id_app:$obj$$.id_app,ma_dvcs:"CTY",ten_dvcs:"C\u00f4ng ty"}),console.log("[createHandler] t\u1ef1 t\u1ea1o dvcs m\u1edbi",$dvcs$$));$obj$$.ma_dvcs=$dvcs$$._id.toString();$callback$$()}}catch($e$$){Logger.error("[createHandler] t\u1ea1o \u0111\u01a1n v\u1ecb c\u01a1 s\u1edf", $e$$),$callback$$("Kh\u00f4ng th\u1ec3 t\u1ea1o \u0111\u01a1n v\u1ecb c\u01a1 s\u1edf m\u1eb7c \u0111\u1ecbnh")}else $callback$$()})},$callback$$=>{$ctrl$$.validating||($ctrl$$.validating=($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)});$ctrl$$.validating($user$$,$obj$$,$e$$=>{if($e$$)return $callback$$($e$$);setImmediate(()=>{$obj$$.user_created=$action$$=="import"?$obj$$.user_created||$user$$.email:$user$$.email;$obj$$.user_updated=$user$$.email;$obj$$.date_created=new Date;$obj$$.date_updated= new Date;validate($obj$$,async $error$$=>{setImmediate(async()=>{if($error$$){let $msgError$$=$error$$;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else{if($id_be_supply_by_user$$&&global.mongoose.Types.ObjectId.isValid($id_be_supply_by_user$$)){let $_id$$=global.mongoose.Types.ObjectId($id_be_supply_by_user$$);await $model$$.findOne({_id:$_id$$},{_id:1})|| ($obj$$._id=$_id$$)}$callback$$()}})},$voucher_options$$)})},{action:$action$$})},function($callback$$){isExists($model$$,$ctrl$$.unique,$obj$$,$ctrl$$.replaceIfExists,async($error$$,$kq$$)=>{setImmediate(async()=>{if($error$$||$kq$$){let $msgError$$=$error$$||ERRORS.ERR_ALREADY_EXIST;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$({error:$msgError$$,code:ERRORS.ERR_ALREADY_EXIST_CODE})});else $callback$$({error:$msgError$$, code:ERRORS.ERR_ALREADY_EXIST_CODE})}else{for(let $k$$ in $ctrl$$.keyValues)$obj$$[$k$$]=$ctrl$$.keyValues[$k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$$[$model_path$$]&&_.isArray($obj$$[$model_path$$])).forEach($model_path$$=>{$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>$path$$!=="line"&&$path$$!=="_id"&&$path$$!=="__v"&&fields_sync_master_detail.indexOf($path$$)>= 0).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);if($ctrl$$.saving)try{await $ctrl$$.saving($user$$,$obj$$,$action$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$ctrl$$.emit("saving",$obj$$);$obj$$.save(function($error$$,$obj_created$$){setImmediate(async()=>{if($error$$){if($ctrl$$.options.onErrorSave)$ctrl$$.options.onErrorSave($user$$, $obj$$,$error$$,$action$$);let $msgErrors$$=[];for(let $k$$ in $error$$.errors)$msgErrors$$.push($error$$.errors[$k$$].message);$msgErrors$$.length==0&&($msgErrors$$=$error$$.message);$msgErrors$$||=JSON.stringify($error$$);if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$$,$e$$=>{$e$$&&Logger.error("onErrorCreating",$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$)}else $ctrl$$.populate&&($obj_created$$=$model$$.findById($obj_created$$._id).inTxn(),$obj_created$$= await $ctrl$$.populate($obj_created$$)),postData($obj_created$$,$ctrl$$,function($msgErrors$$){if($msgErrors$$)if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$$,$e$$=>{$e$$&&($msgErrors$$=$msgErrors$$+"\n"+$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$);else{const $obj_created_cv$$=convertObjectIdsToStrings($obj_created$$.toObject());onAfterCommit(async()=>{$ctrl$$.emit("saved",$obj_created$$);$ctrl$$.emit("created",$obj_created$$);$model$$.modelName!= "customer"&&global.getModel("customer").updateActives&&global.getModel("customer").updateActives($obj_created$$);$req$$&&setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,action:$action$$.toUpperCase(),data:{id:$obj_created_cv$$._id.toString(),data:$obj_created_cv$$}},$user$$.email,$req$$.user_agent,$req$$)});runWebhooks($ctrl$$,$obj_created_cv$$,$action$$.toUpperCase(),$voucher_options$$);await $ctrl$$.cacheData($obj_created_cv$$,void 0,$action$$)}); $callback$$(null,$obj_created_cv$$)}},{req:$req$$})})})}})})},function($obj$$,$callback$$){setImmediate(async()=>{let $co_gia_tri_tam$$=!1;if($obj$$.exfields&&$obj$$.exfields.__files__){for(let $_file$$ of $obj$$.exfields.__files__)await $File$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name});delete $obj$$.exfields.__files__;$co_gia_tri_tam$$=!0}if($obj$$.exfields&&$obj$$.exfields.__supports__){for(let $_support$$ of $obj$$.exfields.__supports__)await $Support$$.updateOne({_id:$_support$$._id}, {id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name});delete $obj$$.exfields.__supports__;$co_gia_tri_tam$$=!0}$co_gia_tri_tam$$&&await $model$$.updateOne({_id:$obj$$._id},{exfields:$obj$$.exfields});$ctrl$$.created?$ctrl$$.created($user$$,$obj$$,function($error$$,$rs$$){if($error$$)return $callback$$($error$$);$ctrl$$.dynamicCreated?$ctrl$$.dynamicCreated($user$$,$rs$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$rs$$)},{listinfo_code:$listinfo_code$$}): $callback$$(null,$rs$$)}):$ctrl$$.dynamicCreated?$ctrl$$.dynamicCreated($user$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$$)},{listinfo_code:$listinfo_code$$}):$callback$$(null,$obj$$)})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$$.current_app_info,$user$$,$obj$$,$callback$$,$voucher_options$$)},function($obj_created_cv$$,$callback$$){$action$$==="import"||$req$$&&($req$$.query||{}).return_data==0?$callback$$(null,{_id:$obj_created_cv$$._id.toString()}): ($obj_created_cv$$.collection_name=$ctrl$$.collection_name,$ctrl$$.onView($user$$,[$obj_created_cv$$],($error$jscomp$13_html_rs$$,$viewValues$$)=>{if($error$jscomp$13_html_rs$$)return $callback$$($error$jscomp$13_html_rs$$);$error$jscomp$13_html_rs$$=$viewValues$$?$viewValues$$[0]:$obj_created_cv$$;$req$$&&$req$$.uploadFile?($error$jscomp$13_html_rs$$="<html><title>OK</title><body>"+JSON.stringify($error$jscomp$13_html_rs$$)+"</body></html>",$callback$$(null,$error$jscomp$13_html_rs$$)):$callback$$(null, $error$jscomp$13_html_rs$$)},{req:$req$$}))}],($e$$,$obj_created$$)=>{$e$$?(Logger.error($e$$),$callback$$($e$$)):($e$$=$model$$.collection.name,$user$$.current_id_app&&($e$$+=$user$$.current_id_app),delete global.cacheDatas[$e$$],$callback$$(null,{obj_created:$obj_created$$}))})}catch($e$$){Logger.error("[createHanlder]",$ctrl$$.name,$e$$),$callback$$($e$$)}},createHandlerAsync=($ctrl$$,$req$$)=>new Promise(($resolve$$,$reject$$)=>{if(!$req$$.data)return $reject$$("Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u \u0111\u1ec3 x\u1eed l\u00fd"); createHandler($ctrl$$,$req$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})}),withSesssion=async($ctrl$$,$req$$,$callback$$)=>{try{const $rs$$=await executeInTransaction(async()=>{var $datas_r$$=$req$$.data;if(Array.isArray($datas_r$$)){let $rs$$=[];for(let $data$$ of $datas_r$$)$req$$.data=$data$$,$req$$.body=$data$$,$datas_r$$=await createHandlerAsync($ctrl$$,$req$$),$rs$$.push($datas_r$$);return $rs$$}return createHandlerAsync($ctrl$$,$req$$)});$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}}; module.exports=withSesssion;module.exports.createHandler=createHandler;