flexbiz-server 12.1.28 → 12.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -77,19 +77,19 @@ if(!$req$$.permission)return $res$$.send([]);$next$$()});else{if(!$permission$$)
|
|
|
77
77
|
$condition$$.id_app&&$condition$$.$and.push({id_app:$condition$$.id_app})}else underscore.has($model$$.schema.paths,"id_app")&&!1!==$ctrl$$.require_id_app&&($condition$$.id_app=$req$$.user.current_id_app);"public"===$req$$.user.email&&underscore.has($model$$.schema.paths,"session_created")&&($condition$$.session_created=($req$$.cookies||{}).uid);underscore.extend($condition$$,$ctrl$$.keyValues);$condition$$.$and&&0===$condition$$.$and.length&&delete $condition$$.$and;$condition$$.$or&&0===$condition$$.$or.length&&
|
|
78
78
|
delete $condition$$.$or;$condition$$.$nor&&0===$condition$$.$nor.length&&delete $condition$$.$nor;$id_sellers_query$$=null;if($req$$.query.count)$condition$$.$where?(console.log("phai loai bo $where trong condition"),$id_sellers_query$$=$model$$.count($condition$$,function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})})):$id_sellers_query$$=$model$$.countDocuments($condition$$,
|
|
79
79
|
function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})});else{let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}var $fields$$=$req$$.query.fields;let $gfields$$={};$fields$$&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=
|
|
80
|
-
1)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").filter($f$$=>$f$$&&0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{$gfields$$[$f$$]=0});!$fields$$&&(($fields$$=$req$$.query.notfields)&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{$f$$&&"_id"!==$f$$&&(
|
|
81
|
-
{$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields
|
|
82
|
-
|
|
83
|
-
$id_sellers_query$$.
|
|
84
|
-
$
|
|
85
|
-
($
|
|
86
|
-
$obj4view$$)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"File m\u1eabu excel ch\u01b0a \u0111\u01b0\u1ee3c khai b\u00e1o t\u1ea1i '"+$_rs_msg_templatePath$$+"'",$res$$.status(400).send({error:$_rs_msg_templatePath$$});$app$jscomp$1_dir_root_template_e$$={};$_groupBy_func_string_rs$$.e_view.forEach($item$$=>{for(let $_key$$ in $item$$){let $_v
|
|
91
|
-
new Date($__v$$)}catch($e$$){$item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else $item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else if($_v$$&&0<=$_key$$.indexOf("ngay")||0<=$_key$$.indexOf("date"))try{let $d$$=moment($_v$$,"YYYY-MM-DD");$d$$.isValid()&&($item$$[`${$_key$$}`]=$d$$.toDate()
|
|
92
|
-
`return (async ()=>{
|
|
80
|
+
1)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").filter($f$$=>$f$$&&0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0});!$fields$$&&(($fields$$=$req$$.query.notfields)&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{$f$$&&"_id"!==$f$$&&(Object.keys($gfields$$).find($k$$=>
|
|
81
|
+
1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").forEach($f$$=>{$f$$&&"_id"!==$f$$&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?(delete $gfields$$.dataview_to,delete $gfields$$.dataview_to_users):($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=
|
|
82
|
+
0));$condition$$.$text&&($gfields$$||($gfields$$={}),$gfields$$.textScore={$meta:"textScore"});if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate)try{$id_sellers_query$$=$model$$.aggregate([{$match:$condition$$}]);if($req$$.query.group){var $group_page$$=JSONParser($req$$.query.group);$id_sellers_query$$.group($group_page$$)}if($req$$.query.match){let $match$$=JSONParser($req$$.query.match);$id_sellers_query$$.match($match$$)}if($req$$.query.project){var $limit_project$$=
|
|
83
|
+
JSONParser($req$$.query.project);$id_sellers_query$$.project($limit_project$$)}else if($gfields$$&&0<Object.keys($gfields$$).length)$limit_project$$=$gfields$$;else if($limit_project$$={_id:1},$group_page$$)for(let $key$$ in $group_page$$)$limit_project$$[$key$$]=1;$id_sellers_query$$.project($limit_project$$);if($req$$.query.aggregate){let $aggregate$$=JSONParser($req$$.query.aggregate);$id_sellers_query$$.append($aggregate$$)}}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||
|
|
84
|
+
$e$$})}else underscore.has($model$$.schema.paths,"id_app")&&0<Object.keys($gfields$$).length&&Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])&&($gfields$$.id_app=1),$id_sellers_query$$=$model$$.find($condition$$,$gfields$$);!$sort$$&&$gfields$$.textScore?$sort$$={textScore:{$meta:"textScore"}}:$sort$$&&($sort$$._id=1);$sort$$&&$id_sellers_query$$.sort($sort$$);"xlsx"!==$req$$.query.type_data&&"1"!=$req$$.query.rpt&&($group_page$$=$req$$.query.page,($limit_project$$=$req$$.query.limit)&&($limit_project$$=
|
|
85
|
+
Number($limit_project$$)),$limit_project$$||($limit_project$$=!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name?20:1E5),$limit_project$$&&500<$limit_project$$&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&($limit_project$$=500),$group_page$$?$id_sellers_query$$.skip((Number($group_page$$)-1)*$limit_project$$).limit($limit_project$$):$id_sellers_query$$.limit($limit_project$$));$id_sellers_query$$.lean&&($id_sellers_query$$=$id_sellers_query$$.lean());$id_sellers_query$$.exec(function($e$jscomp$0$$,
|
|
86
|
+
$obj4view$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$,$condition$$,$gfields$$),$res$$.status(400).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});$obj4view$$||($obj4view$$=[]);async.series({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,function($error$$,$items$$){setImmediate(()=>{$callback$$($error$$,$items$$)})}):$callback$$(null,$obj4view$$)},set_collection_name:function($callback$$){$obj4view$$.forEach($obj$$=>{$obj$$.collection_name||
|
|
87
|
+
($obj$$.collection_name=$ctrl$$.collection_name)});$callback$$(null)}},function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});$obj4view$$=$rs$jscomp$0$$.found;async.series({e_view:function($callback$$){$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return console.error("Erron on view:",$error$$),$callback$$($error$$);
|
|
88
|
+
$callback$$(null,$viewValue$$)})},{req:$req$$,shareRoute:$shareRoute$$})}},async function($app$jscomp$1_dir_root_template_e$$,$_groupBy_func_string_rs$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});if($req$$.query.type_data&&"xlsx"==$req$$.query.type_data){$app$jscomp$1_dir_root_template_e$$=(configs.paths||{}).templates;let $template_id$$,$excelTemplate$$;if($template_id$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($template_id$$))return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});
|
|
89
|
+
$excelTemplate$$=await global.getModel("exportexceltemplate").findById($template_id$$);if(!$excelTemplate$$||!$excelTemplate$$.file)return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});var $_rs_msg_templatePath$$=$app$jscomp$1_dir_root_template_e$$?`${path.dirname($app$jscomp$1_dir_root_template_e$$)}${$excelTemplate$$.file}`:`${path.dirname(__dirname)}${$excelTemplate$$.file}`}else $app$jscomp$1_dir_root_template_e$$&&($_rs_msg_templatePath$$=`${$app$jscomp$1_dir_root_template_e$$}/excels/lists/${$ctrl$$.name}.xlsx`),
|
|
90
|
+
$_rs_msg_templatePath$$&&fs.existsSync($_rs_msg_templatePath$$)||($_rs_msg_templatePath$$=`${path.dirname(__dirname)}/templates/excels/lists/${$ctrl$$.name}.xlsx`);if(!fs.existsSync($_rs_msg_templatePath$$))return $_rs_msg_templatePath$$="File m\u1eabu excel ch\u01b0a \u0111\u01b0\u1ee3c khai b\u00e1o t\u1ea1i '"+$_rs_msg_templatePath$$+"'",$res$$.status(400).send({error:$_rs_msg_templatePath$$});$app$jscomp$1_dir_root_template_e$$={};$_groupBy_func_string_rs$$.e_view.forEach($item$$=>{for(let $_key$$ in $item$$){let $_v$$=
|
|
91
|
+
$item$$[$_key$$];if(underscore.isObject($_v$$))for(let $__key$$ in $_v$$){let $__v$$=$_v$$[$__key$$];if(!underscore.isFunction($__v$$))if(0<=$__key$$.indexOf("ngay")||0<=$__key$$.indexOf("date"))try{$item$$[`${$_key$$}_${$__key$$}`]=new Date($__v$$)}catch($e$$){$item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else $item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else if($_v$$&&0<=$_key$$.indexOf("ngay")||0<=$_key$$.indexOf("date"))try{let $d$$=moment($_v$$,"YYYY-MM-DD");$d$$.isValid()&&($item$$[`${$_key$$}`]=$d$$.toDate(),
|
|
92
|
+
$item$$[`${$_key$$}_string`]=$d$$.format("DD/MM/YYYY"))}catch($e$$){console.error("Error convert to date",$_v$$,$e$$)}}});$app$jscomp$1_dir_root_template_e$$.detail=$_groupBy_func_string_rs$$.e_view;if($excelTemplate$$&&$excelTemplate$$.handle_data){$_groupBy_func_string_rs$$=`return (async ()=>{
|
|
93
93
|
try{
|
|
94
94
|
${$excelTemplate$$.handle_data}
|
|
95
95
|
}catch(e){
|
|
@@ -103,13 +103,14 @@ $_groupBy_func_string_rs$$),$res$$.status(400).send({error:$e$$.message||$e$$.er
|
|
|
103
103
|
"/excel").get(...$findRoute$$)):(this.router.route($_route_name_route_name$$).post(...$findRoute$$),this.router.route($_route_name_route_name$$+"/excel").post(...$findRoute$$))};
|
|
104
104
|
controller.prototype.get=function($route_name$$,$shareRoute$$=!1){let $model$$=this.model,$ctrl$$=this;this.router.route(`${$route_name$$||this.route_name}/:id`).get(function($req$$,$res$$,$next$$){let $id$$=$req$$.params.id;if(!global.mongoose.Types.ObjectId.isValid($id$$))return $res$$.status(404).send({error:ERR_ID_INVALID,code:ERR_ID_INVALID_CODE});async.series({c:$callback$$=>{global.clientRedis.get("stp:"+$id$$,async($err_fields$jscomp$2_notfields$$,$obj$jscomp$0$$)=>{if(!$err_fields$jscomp$2_notfields$$&&
|
|
105
105
|
$obj$jscomp$0$$&&$obj$jscomp$0$$._id===$id$$)$callback$$(null,JSONParser($obj$jscomp$0$$));else{let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}$err_fields$jscomp$2_notfields$$=$req$$.query.fields;let $gfields$$={};$err_fields$jscomp$2_notfields$$&&(underscore.isArray($err_fields$jscomp$2_notfields$$)?$err_fields$jscomp$2_notfields$$.filter($f$$=>0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>
|
|
106
|
-
{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=1)}):underscore.isObject($err_fields$jscomp$2_notfields$$)?$gfields$$={...$gfields$$,...$err_fields$jscomp$2_notfields$$}:$err_fields$jscomp$2_notfields$$.split(",").filter($f$$=>0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=1)}));if(!$err_fields$jscomp$2_notfields$$)try{$field_not_right$$.forEach($f$$=>{$f$$&&($gfields$$[$f$$]=0)})}catch($e$$){console.error("Error get field not right"
|
|
107
|
-
(($err_fields$jscomp$2_notfields$$=$req$$.query.notfields)&&(underscore.isArray($err_fields$jscomp$2_notfields$$)?$err_fields$jscomp$2_notfields$$.forEach($f$$=>{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=0)}):underscore.isObject($err_fields$jscomp$2_notfields$$)?$gfields$$={...$gfields$$,...$err_fields$jscomp$2_notfields$$}:$err_fields$jscomp$2_notfields$$.split(",").forEach($f$$=>{"_id"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
$res$$.status(
|
|
111
|
-
$
|
|
112
|
-
|
|
106
|
+
{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=1)}):underscore.isObject($err_fields$jscomp$2_notfields$$)?$gfields$$={...$gfields$$,...$err_fields$jscomp$2_notfields$$}:$err_fields$jscomp$2_notfields$$.split(",").filter($f$$=>0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=1)}));if(!$err_fields$jscomp$2_notfields$$)try{$field_not_right$$.forEach($f$$=>{$f$$&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)})}catch($e$$){console.error("Error get field not right",
|
|
107
|
+
$e$$)}!$err_fields$jscomp$2_notfields$$&&(($err_fields$jscomp$2_notfields$$=$req$$.query.notfields)&&(underscore.isArray($err_fields$jscomp$2_notfields$$)?$err_fields$jscomp$2_notfields$$.forEach($f$$=>{"_id"!=$f$$&&$f$$&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)}):underscore.isObject($err_fields$jscomp$2_notfields$$)?$gfields$$={...$gfields$$,...$err_fields$jscomp$2_notfields$$}:$err_fields$jscomp$2_notfields$$.split(",").forEach($f$$=>{"_id"!=
|
|
108
|
+
$f$$&&$f$$&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&(Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])?(delete $gfields$$.dataview_to,delete $gfields$$.dataview_to_users):($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0));underscore.has($model$$.schema.paths,"id_app")&&0<Object.keys($gfields$$).length&&Object.keys($gfields$$).find($k$$=>1==$gfields$$[$k$$])&&($gfields$$.id_app=
|
|
109
|
+
1);$model$$.findById($id$$,$gfields$$,function($err$$,$obj$$){setImmediate(()=>{$callback$$($err$$,$obj$$)})})}})}},async($c_app_e$$,$rs$$)=>{if($c_app_e$$)return console.error($c_app_e$$),$c_app_e$$.error?$res$$.status(400).send($c_app_e$$):$res$$.status(400).send({error:$c_app_e$$.message||$c_app_e$$});let $obj$$=$rs$$.c;if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});if($shareRoute$$&&$obj$$.shared)underscore.has($model$$.schema.paths,"id_app")&&(($c_app_e$$=
|
|
110
|
+
await app.findById($obj$$.id_app))&&!0===$c_app_e$$.sale_online||$res$$.status(403).send({error:ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE}));else if(!0===underscore.has($model$$.schema.paths,"id_app")&&$req$$.user.current_id_app!=$obj$$.id_app)return $res$$.status(403).send({error:ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE});$ctrl$$.getting?$ctrl$$.getting($req$$.user,$id$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});
|
|
111
|
+
$req$$.obj=$obj$$;$next$$()})},$obj$$):($req$$.obj=$obj$$,$next$$())})},function($req$$,$res$$,$next$$){let $obj$$=$req$$.obj;if($obj$$&&$obj$$.toObject)$obj$$=$obj$$.toObject();else return $next$$();if($obj$$.shared&&$shareRoute$$)return $next$$();permission.hasRight($obj$$.id_app,$req$$.user.email,$ctrl$$.module,"view",function($error$$,$permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,$e$$=>{setImmediate(()=>{if($e$$)return $res$$.status(403).send({error:$e$$||
|
|
112
|
+
ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE});if($req$$.permission)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})});else if($permission$$)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})},{data:$obj$$,obj:$obj$$,notNeedRight:$ctrl$$.options.notNeedRight})},function($req$$,$res$$){let $obj$$=$req$$.obj;$obj$$&&$obj$$.toObject&&($obj$$=$obj$$.toObject());$obj$$.collection_name=$ctrl$$.collection_name;
|
|
113
|
+
$ctrl$$.onView($req$$.user,[$obj$$],function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$res$$.send($viewValue$$[0])})},{req:$req$$,shareRoute:$shareRoute$$})})};
|
|
113
114
|
controller.prototype.postAgain=function(){let $model$$=this.model,$ctrl$$=this;this.router.route(`${this.route_name}/action/postagain`).get(function($req$$,$res$$,$next$$){console.log("reposting...",$ctrl$$.name,$req$$.query);if(!$ctrl$$.post)return $res$$.send({message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"});let $condition$jscomp$1$$={};for(let $k$$ in $req$$.query)if("id_app"!=$k$$&&"access_token"!=$k$$)if("_id"==$k$$&&global.mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=
|
|
114
115
|
global.mongoose.Types.ObjectId($req$$.query._id);$condition$jscomp$1$$._id=$id$$}catch($error$$){console.error($error$$)}else{if("q"==$k$$&&$req$$.query[$k$$])try{$condition$jscomp$1$$=JSONParser($req$$.query[$k$$]);continue}catch($e$$){return console.error($e$$),$res$$.status(400).send($e$$)}if("tu_ngay"==$k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")){var $val_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();$condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$gte=
|
|
115
116
|
$val_val$$:$condition$jscomp$1$$.ngay_ct={$gte:$val_val$$}}else"den_ngay"==$k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$lte=$val_val$$:$condition$jscomp$1$$.ngay_ct={$lte:$val_val$$}):!0===underscore.has($model$$.schema.paths,$k$$)&&($condition$jscomp$1$$[$k$$]=$req$$.query[$k$$])}!0===underscore.has($model$$.schema.paths,"id_app")&&($condition$jscomp$1$$.id_app=
|
package/server/global.js
CHANGED
|
@@ -14,6 +14,6 @@ global.alertNotification=function($email$$){setImmediate(()=>{Notification.count
|
|
|
14
14
|
global.asyncCountNotifications=async function($email$$){return new Promise($resolve$$=>{setImmediate(()=>{Notification.countDocuments({email_receiver:$email$$,email_owner:$email$$,read:!1},function($error$$,$count$$){setImmediate(()=>{$error$$?(console.log($error$$),$resolve$$(0)):$resolve$$($count$$)})})})})};const {RateLimiterRedis,RateLimiterQueue,RateLimiterMemory}=require("rate-limiter-flexible");
|
|
15
15
|
global.createRateLimiterMiddleware=async($config$$,$keyPrefix$$)=>{const $total_points$$=$config$$.points||1E3;var $duration_limiterFlexible$$=$config$$.duration||1;const $insuranceLimiter$$=new RateLimiterMemory({points:$total_points$$,duration:$duration_limiterFlexible$$});$duration_limiterFlexible$$=new RateLimiterRedis({keyPrefix:$keyPrefix$$,storeClient:global.clientRedis,points:$total_points$$,duration:$duration_limiterFlexible$$,blockDuration:$config$$.blockDuration||0,inmemoryBlockOnConsumed:$total_points$$+
|
|
16
16
|
1,inmemoryBlockDuration:10,insuranceLimiter:$insuranceLimiter$$});const $rateLimiter$$=new RateLimiterQueue($duration_limiterFlexible$$,{maxQueueSize:$config$$.maxQueueSize||1E4});return async($req$$,$res$$,$next$$)=>{let $key$$=($req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress).replace("::ffff:","");const $originalUrl$$=$req$$.originalUrl,$origin$$=($req$$.headers.origin||$req$$.headers.referer||"").toString().toLowerCase().replace("https://","").replace("http://","").replace("www.",
|
|
17
|
-
"").split("/").join("").trim(),$trust_domains$$=((global.configs||{}).trust_domains||"").toString().toLowerCase(),$trust_Key$$=$req$$.headers["x-trust-key"]||$req$$.query.trustkey||$req$$.query.trust_key||"",$trust_keys$$=(global.configs||{}).trust_keys||[];$req$$.user&&($key$$=`${$key$$}-${$req$$.user.email}`);$key$$=`${$key$$}-${$origin$$||"unknow"}-${$trust_Key$$||"untrustkey"}`;let $points$$;!$trust_domains$$&&0==$trust_keys$$.length||$origin$$&&$trust_domains$$&&0<=$trust_domains$$.indexOf($origin$$)||
|
|
17
|
+
"").split("/").join("").trim(),$trust_domains$$=((global.configs||{}).trust_domains||"").toString().toLowerCase(),$trust_Key$$=$req$$.headers["x-trust-key"]||$req$$.query.trustkey||$req$$.query.trust_key||"",$trust_keys$$=(global.configs||{}).trust_keys||[];$req$$.user&&($key$$=`${$key$$}-${$req$$.user.email}`);$key$$=`${$key$$}-${$origin$$||"unknow"}-${$trust_Key$$||"untrustkey"}`;let $points$$;!$origin$$||!$trust_domains$$&&0==$trust_keys$$.length||$origin$$&&$trust_domains$$&&0<=$trust_domains$$.indexOf($origin$$)||
|
|
18
18
|
0<$trust_keys$$.length&&0<=$trust_keys$$.indexOf($trust_Key$$)?$points$$=1:($points$$=Math.roundBy($total_points$$/2),console.log("This request is limit rate at",$points$$,"/",$total_points$$,{origin:$origin$$,originalUrl:$originalUrl$$,trust_domains:$trust_domains$$,trust_keys:$trust_keys$$,trust_Key:$trust_Key$$,key:$key$$,header:$req$$.headers}));setImmediate(async()=>{try{await $rateLimiter$$.removeTokens($points$$,$key$$),$next$$()}catch($err$$){console.error("Error rate limiter",$keyPrefix$$,
|
|
19
19
|
$err$$),$err$$ instanceof Error?$res$$.status(400).send({error:$err$$.message||"Error rate limiter"}):$res$$.status(429).send({error:"Too Many Requests. Please try again later"})}})}};
|
|
@@ -4,8 +4,8 @@ $reject$$)=>{ffmpeg($fileInput$$,{timeout:432E3}).addOptions("-profile:v baselin
|
|
|
4
4
|
if(!$recache$$&&fs.existsSync($file_name_watermark$$))return $file_name_watermark$$;$extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__dirname,$extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.join($extension_root$$,"images"));let $file_logo$$=path.join($extension_root$$,$app_info$$.logo_watermark.split("getfile/")[1]);return fs.existsSync($file_logo$$)?new Promise($resolve$$=>{sharp($file_name$$,
|
|
5
5
|
{failOnError:!1}).metadata().then($value$$=>{const $watermark_size$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,position:{logoX:$value$$.width-$watermark_size$$-10,logoY:10,logoHeight:$watermark_size$$,logoWidth:$watermark_size$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})}).catch($error$$=>{console.log($error$$);
|
|
6
6
|
return $resolve$$($file_name$$)})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,$file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;
|
|
7
|
-
case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or 2K or FULLHD or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}.webp`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?
|
|
8
|
-
{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
|
|
7
|
+
case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "XL":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=Number($_size_file_name_resize$$);if(isNaN($size$$)||!$size$$)$size$$=1080;$cache$$=!0}catch($e$$){console.log("size param must be X or S or M or L or 2K or FULLHD or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}.webp`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?
|
|
8
|
+
{file_name_resize:$_size_file_name_resize$$,exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
|
|
9
9
|
module.exports=function($router$$){const $contr$$=new controller($router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/api/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr$$.creating=async function($file_name$jscomp$2_input_user$$,
|
|
10
10
|
$obj$$,$fn$$){if($obj$$.file&&$obj$$.read_image&&$obj$$.file.name&&$obj$$.file.extension&&!$obj$$.file.url){$file_name$jscomp$2_input_user$$=$obj$$.file.name;var $extension$jscomp$2_root$$=$obj$$.file.extension.toLowerCase();if(0<=["png","jpg"].indexOf($extension$jscomp$2_root$$)&&($extension$jscomp$2_root$$=configs.paths.uploads,$extension$jscomp$2_root$$||($extension$jscomp$2_root$$=__dirname,$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),
|
|
11
11
|
$extension$jscomp$2_root$$=path.join($extension$jscomp$2_root$$,"uploads")),$file_name$jscomp$2_input_user$$=path.join($extension$jscomp$2_root$$,$file_name$jscomp$2_input_user$$),fs.existsSync($file_name$jscomp$2_input_user$$))){$extension$jscomp$2_root$$=require("node-tesseract-ocr");const $config$$={lang:"vie+eng"};try{const $text$$=await $extension$jscomp$2_root$$.recognize($file_name$jscomp$2_input_user$$,$config$$);$obj$$.text_from_image=$text$$}catch($error$$){return console.error($error$$),
|
|
@@ -19,10 +19,10 @@ path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$._i
|
|
|
19
19
|
"FULLHD";app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$jscomp$0$$,$app_info$$){if($e$jscomp$0$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$rs$$&&$rs$$.file?permission.hasRight($rs$$.id_app,$req$$.user.email,$contr$$.module,"view",async function($error$jscomp$3_extension$$,$_new_file_file_name$jscomp$5_permission$$){if(!$_new_file_file_name$jscomp$5_permission$$)return $res$$.status(403).send({error:$error$jscomp$3_extension$$||
|
|
20
20
|
"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp file n\u00e0y"});if($rs$$.file.url)return $res$$.redirect($rs$$.file.url);$_new_file_file_name$jscomp$5_permission$$=$rs$$.file.name;$error$jscomp$3_extension$$=$rs$$.file.extension;let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$_new_file_file_name$jscomp$5_permission$$=path.join($root$$,$_new_file_file_name$jscomp$5_permission$$);
|
|
21
21
|
if(fs.existsSync($_new_file_file_name$jscomp$5_permission$$))if(0<=["png","jpg","jpeg","webp"].indexOf($error$jscomp$3_extension$$)){$_new_file_file_name$jscomp$5_permission$$=await setWaterMark4Image($app_info$$,$_new_file_file_name$jscomp$5_permission$$,$error$jscomp$3_extension$$,$req$$.query.recache);let $_resize_conf$$=await configResizeImage($size$$,$_new_file_file_name$jscomp$5_permission$$,$error$jscomp$3_extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return sharp($_resize_conf$$.file_name_resize,
|
|
22
|
-
{failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_file_name$jscomp$5_permission$$,{failOnError:!1});($error$jscomp$3_extension$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$error$jscomp$3_extension$$.width&&$_resize_conf$$.size<$error$jscomp$3_extension$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}))
|
|
23
|
-
$error$$=>{if($error$$)return console.error("save resize image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($_new_file_file_name$jscomp$5_permission$$,$rs$$.file.originalname);else $res$$.status(400).send({error:"File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"})},{data:$rs$$,
|
|
24
|
-
|
|
25
|
-
async function($error$jscomp$5_file_name$jscomp$6_output$$,$file$jscomp$1_permission$jscomp$2_root$$){if(!$file$jscomp$1_permission$jscomp$2_root$$)return $res$$.status(403).send({error:$error$jscomp$5_file_name$jscomp$6_output$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp file n\u00e0y"});if($rs$$.file.url)return $res$$.redirect($rs$$.file.url)
|
|
26
|
-
|
|
27
|
-
"videos"));$error$jscomp$5_file_name$jscomp$6_output$$=path.join($file$jscomp$1_permission$jscomp$2_root$$,$rs$$._id.toString(),$error$jscomp$5_file_name$jscomp$6_output$$);if(fs.existsSync($error$jscomp$5_file_name$jscomp$6_output$$)){const $readStream$$=fs.createReadStream($error$jscomp$5_file_name$jscomp$6_output$$)
|
|
28
|
-
{data:$rs$$,obj:$rs$$,notNeedRight:!$rs$$.id_link&&!$rs$$.id_folder||$rs$$.shared}):$res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
|
|
22
|
+
{failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_file_name$jscomp$5_permission$$,{failOnError:!1});($error$jscomp$3_extension$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$error$jscomp$3_extension$$.width&&$_resize_conf$$.size<$error$jscomp$3_extension$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}));$error$jscomp$3_extension$$&&"webp"!=$error$jscomp$3_extension$$.format&&(console.log("convert ",$error$jscomp$3_extension$$.format,"to","webp","..."),
|
|
23
|
+
$_gm$$=$_gm$$.webp({lossless:!1,quality:50,nearLossless:!0}));$_resize_conf$$.cache&&setImmediate(()=>{$_gm$$.toFile($_resize_conf$$.file_name_resize,$error$$=>{if($error$$)return console.error("save resize image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($_new_file_file_name$jscomp$5_permission$$,$rs$$.file.originalname);else $res$$.status(400).send({error:"File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"})},{data:$rs$$,
|
|
24
|
+
obj:$rs$$,notNeedRight:!$rs$$.id_link&&!$rs$$.id_folder||$rs$$.shared}):$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"})})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$jscomp$0$$,$app_info$$){if($e$jscomp$0$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$$,
|
|
25
|
+
$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$rs$$&&$rs$$.file?permission.hasRight($rs$$.id_app,$req$$.user.email,$contr$$.module,"view",async function($error$jscomp$5_file_name$jscomp$6_output$$,$file$jscomp$1_permission$jscomp$2_root$$){if(!$file$jscomp$1_permission$jscomp$2_root$$)return $res$$.status(403).send({error:$error$jscomp$5_file_name$jscomp$6_output$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp file n\u00e0y"});if($rs$$.file.url)return $res$$.redirect($rs$$.file.url);
|
|
26
|
+
$error$jscomp$5_file_name$jscomp$6_output$$=$rs$$.file.name;$file$jscomp$1_permission$jscomp$2_root$$=$req$$.params.file;".ts"==$file$jscomp$1_permission$jscomp$2_root$$.substr(-3)&&($error$jscomp$5_file_name$jscomp$6_output$$=$file$jscomp$1_permission$jscomp$2_root$$);$file$jscomp$1_permission$jscomp$2_root$$=configs.paths.videos;$file$jscomp$1_permission$jscomp$2_root$$||($file$jscomp$1_permission$jscomp$2_root$$=__dirname,$file$jscomp$1_permission$jscomp$2_root$$=path.dirname($file$jscomp$1_permission$jscomp$2_root$$),
|
|
27
|
+
$file$jscomp$1_permission$jscomp$2_root$$=path.dirname($file$jscomp$1_permission$jscomp$2_root$$),$file$jscomp$1_permission$jscomp$2_root$$=path.join($file$jscomp$1_permission$jscomp$2_root$$,"videos"));$error$jscomp$5_file_name$jscomp$6_output$$=path.join($file$jscomp$1_permission$jscomp$2_root$$,$rs$$._id.toString(),$error$jscomp$5_file_name$jscomp$6_output$$);if(fs.existsSync($error$jscomp$5_file_name$jscomp$6_output$$)){const $readStream$$=fs.createReadStream($error$jscomp$5_file_name$jscomp$6_output$$);
|
|
28
|
+
$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")},{data:$rs$$,obj:$rs$$,notNeedRight:!$rs$$.id_link&&!$rs$$.id_folder||$rs$$.shared}):$res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
|
|
@@ -7,5 +7,5 @@ if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpper
|
|
|
7
7
|
module.exports=function($router$$){$router$$.route("/file/shared/:id").get(($req$$,$res$$)=>{let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||"FULLHD";if(!global.mongoose.Types.ObjectId.isValid($id$$))return $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"});global.getModel("file").findOne({_id:$id$$}).lean().exec(async($e$jscomp$1_extension$$,$_new_file_orgin_file_size_rs$$)=>{if($e$jscomp$1_extension$$)return $res$$.status(400).send($e$jscomp$1_extension$$);
|
|
8
8
|
if($_new_file_orgin_file_size_rs$$){if(!$_new_file_orgin_file_size_rs$$.shared)return $res$$.status(403).send({error:"Kh\u00f4ng th\u1ec3 truy c\u1eadp file n\u00e0y"});let $app_info$$=await global.getModel("app").findOne({_id:$_new_file_orgin_file_size_rs$$.id_app}).lean();$app_info$$||($app_info$$={});if($_new_file_orgin_file_size_rs$$.file.url)return $res$$.redirect($_new_file_orgin_file_size_rs$$.file.url);let $file_name$$=$_new_file_orgin_file_size_rs$$.file.name;$e$jscomp$1_extension$$=$_new_file_orgin_file_size_rs$$.file.extension;
|
|
9
9
|
let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$file_name$$=path.join($root$$,$file_name$$);if(fs.existsSync($file_name$$))if(0<=["png","jpg","jpeg","webp"].indexOf($e$jscomp$1_extension$$)){$_new_file_orgin_file_size_rs$$=await setWaterMark4Image($app_info$$,$file_name$$,$e$jscomp$1_extension$$,$req$$.query.recache);let $_resize_conf$$=await configResizeImage($size$$,$_new_file_orgin_file_size_rs$$,
|
|
10
|
-
$e$jscomp$1_extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return sharp($_resize_conf$$.file_name_resize,{failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_orgin_file_size_rs$$,{failOnError:!1});($_new_file_orgin_file_size_rs$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.width&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}))
|
|
11
|
-
$_gm$$.webp({lossless:!1}));$_resize_conf$$.cache&&setImmediate(()=>{$_gm$$.toFile($_resize_conf$$.file_name_resize,$error$$=>{if($error$$)return console.error("save cache image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($file_name$$,$_new_file_orgin_file_size_rs$$.file.originalname);else $res$$.status(400).send({error:"File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"})}else $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"})})})};
|
|
10
|
+
$e$jscomp$1_extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return sharp($_resize_conf$$.file_name_resize,{failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_orgin_file_size_rs$$,{failOnError:!1});($_new_file_orgin_file_size_rs$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.width&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}));$_new_file_orgin_file_size_rs$$&&
|
|
11
|
+
"webp"!=$_new_file_orgin_file_size_rs$$.format&&($_gm$$=$_gm$$.webp({lossless:!1}));$_resize_conf$$.cache&&setImmediate(()=>{$_gm$$.toFile($_resize_conf$$.file_name_resize,$error$$=>{if($error$$)return console.error("save cache image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($file_name$$,$_new_file_orgin_file_size_rs$$.file.originalname);else $res$$.status(400).send({error:"File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"})}else $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"})})})};
|
|
@@ -7,31 +7,31 @@ $req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,($
|
|
|
7
7
|
[],$user$$.local.email2=$user$$.email2,$user$$.local.picture||($user$$.local.picture="/images/avatar.jpg"),delete $user$$.token,User.find({partner:$user$$._id},{local:1}).lean().exec(async($e$$,$p$$)=>{$p$$&&$p$$.forEach(function($u$$){delete $u$$.local.password;delete $u$$.local.rspassword;delete $u$$.tokens;delete $u$$.token;delete $u$$.local.pin;$user$$.local.invited.push($u$$.local)});$user$$.local.isOnline=await User.isOnline($user$$.email);$res$$.send($user$$.local)})):$res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin c\u1ee7a t\u00e0i kho\u1ea3n n\u00e0y"})})});
|
|
8
8
|
$router$$.route("/avatar").get(function($req$$,$res$$){var $email$$=$req$$.query.email,$query$$={};async.parallel({e:function($callback$$){$email$$&&($query$$.email=$email$$);$callback$$()},t:function($callback$$){$email$$?$callback$$():Token.findOne({token:$req$$.query.access_token},function($e$$,$t$$){if($e$$)return $callback$$($e$$);$t$$&&($query$$.email=$t$$.email);$callback$$()})}},function($e$$){if($e$$)return $res$$.status(400).send({error:$e$$});let $size$$=Number($req$$.query.size)||240;
|
|
9
9
|
$query$$.email||($query$$.tokens=$req$$.query.access_token);User.findOne($query$$,{picture:1}).lean().exec(async function($error$$,$_gm_imgPath_user$$){if($error$$)return $res$$.status(400).send($error$$);$error$$=configs.paths.images||path.join(path.dirname(path.dirname(__dirname)),"images");$_gm_imgPath_user$$&&$_gm_imgPath_user$$.picture?0===$_gm_imgPath_user$$.picture.indexOf("/getfile/")?($_gm_imgPath_user$$=$_gm_imgPath_user$$.picture.replace(/\/getfile\//g,""),$_gm_imgPath_user$$=path.join($error$$,
|
|
10
|
-
$_gm_imgPath_user$$),fs.existsSync($_gm_imgPath_user$$)?($_gm_imgPath_user$$=sharp($_gm_imgPath_user$$,{failOnError:!1}),($error$$=await $_gm_imgPath_user$$.metadata())&&$size$$&&$size$$<$error$$.width&&$size$$<$error$$.height&&($_gm_imgPath_user$$=$_gm_imgPath_user$$.resize({width:$size$$}))
|
|
10
|
+
$_gm_imgPath_user$$),fs.existsSync($_gm_imgPath_user$$)?($_gm_imgPath_user$$=sharp($_gm_imgPath_user$$,{failOnError:!1}),($error$$=await $_gm_imgPath_user$$.metadata())&&$size$$&&$size$$<$error$$.width&&$size$$<$error$$.height&&($_gm_imgPath_user$$=$_gm_imgPath_user$$.resize({width:$size$$})),$error$$&&"webp"!=$error$$.format&&($_gm_imgPath_user$$=$_gm_imgPath_user$$.webp({lossless:!1})),$_gm_imgPath_user$$.pipe($res$$)):$res$$.sendFile(path.join($error$$,"avatar.jpg"))):0===$_gm_imgPath_user$$.picture.indexOf("http://")||
|
|
11
11
|
0===$_gm_imgPath_user$$.picture.indexOf("https://")?request.get($_gm_imgPath_user$$.picture).pipe($res$$):$res$$.sendFile(path.join($error$$,"avatar.jpg")):$res$$.sendFile(path.join($error$$,"avatar.jpg"))})})});$router$$.route("/uploadfile").post(function($req$$,$res$jscomp$0$$){const $access_token$$=$req$$.query.access_token;let $folder$$=$req$$.query.folder||"";const $id_app$$=$req$$.query.id_app;if(!$req$$.files.fileupload)if($req$$.files.file)$req$$.files.fileupload=$req$$.files.file;else return $res$jscomp$0$$.status(400).send({error:"File kh\u00f4ng t\u1ed3n t\u1ea1i"});
|
|
12
12
|
const $path$$=require("path");if(!$req$$.files.fileupload.path)return $res$jscomp$0$$.status(400).send({error:"File kh\u00f4ng t\u1ed3n t\u1ea1i"});let $ext$$=$path$$.extname($req$$.files.fileupload.path);if($ext$$){if($ext$$=$ext$$.toLowerCase(),".exe"===$ext$$)return $res$jscomp$0$$.status(400).send({error:"Ki\u1ec3u file n\u00e0y kh\u00f4ng \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn"})}else return $res$jscomp$0$$.status(400).send({error:"Ki\u1ec3u file n\u00e0y kh\u00f4ng \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn"});
|
|
13
|
-
findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async($error$jscomp$1$$,$_user$$)=>{if($error$jscomp$1$$)return $res$jscomp$0$$.status(400).send({error:$error$jscomp$1$$.message||$error$jscomp$1$$.error||$error$jscomp$1$$});if($_user$$){const $user$$=await User.findOne({email:$_user$$.email});fs.readFile($req$$.files.fileupload.path,async function($
|
|
14
|
-
$
|
|
15
|
-
$folder$$));let $newPath$$=$folder$$+"/"+$user$$._id.toString()+"_"+(new Date).getTime().toString()+"_"+$originalname_p$$,$path_image$$;if(".png"!==$ext$$&&".jpeg"!==$ext$$&&".jpg"!==$ext$$&&".gif"!==$ext$$&&".webp"!==$ext$$)$path_image$$=$
|
|
16
|
-
$res$jscomp$0$$.send({fileUrl:"/getfile/"+$newPath$$}):($res$jscomp$0$$.writeHead(200,{"Content-Type":"text/html"}),$res$jscomp$0$$.end("<html><head><title>/getfile/"+$newPath$$+"</title></head><body>success</body></html>"))});else{".webp"!==$ext$$&&($newPath$$+=".webp");$path_image$$=$
|
|
17
|
-
$_gm$$=sharp($req$$.files.fileupload.path,{failOnError:!1});"webp"!=$
|
|
18
|
-
fs.writeFile($path_image$$,$data$$,$e$$=>{if($e$$)return $callback$$($error$$);$callback$$()})):(console.log("resize image",$path_image$$),$callback$$())}):fs.writeFile($path_image$$,$data$$,function($err$$){$callback$$($err$$)})})}],function($err$$){if($err$$)return $res$jscomp$0$$.status(400).send({error:$err$$.message||$err$$.error||$err$$});$_gm$$.resize({width:350}).toFile($path_image_thumb$$,
|
|
19
|
-
$error$jscomp$0$$,$req$$.files.fileupload.path,". Ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd s\u1eed d\u1ee5ng file g\u1ed1c l\u00e0m thubnail\n",$req$$.header("user-agent"));try{await new Promise(($res$$,$rej$$)=>{fs.writeFile($path_image_thumb$$,$data$$,$e$$=>{if($e$$)return $rej$$($e$$);$res$$()})})}catch($error$$){return $res$jscomp$0$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 t\u1ea1o thumbnail cho h\u00ecnh \u1ea3nh n\u00e0y. L\u1ed7i: "+
|
|
20
|
-
$e$$=>{$e$$&&console.error($e$$)});let $path_avatar$$="/getfile/"+$newPath$$,$path_thumb$$="/getfile/"+$thumbPath$$;"avatars"==$folder$$?($user$$.local.picture=$path_avatar$$,$user$$.picture=$user$$.local.picture,$user$$.save(function($error$$){if($error$$)return $res$jscomp$0$$.status(400).send($error$$);$req$$.query.json?$res$jscomp$0$$.send({image:$path_avatar$$,thumb:$path_thumb$$,fileUrl:$path_avatar$$}):($res$jscomp$0$$.writeHead(200,
|
|
21
|
-
$path_avatar$$+"</title></head><body>success</body></html>"))})):$req$$.query.json?$res$jscomp$0$$.send({image:$path_avatar$$,thumb:$path_thumb$$,fileUrl:$path_avatar$$}):($res$jscomp$0$$.writeHead(200,{"Content-Type":"text/html"}),$res$jscomp$0$$.end("<html><head><title>"+$path_avatar$$+"</title></head><body>success</body></html>"))})})}})}else $res$jscomp$0$$.status(404).send({error:"Not found"})})});$router$$.route("/uploadexcel").post(function($req
|
|
22
|
-
if(!$req$$.files.fileupload)if($req$$.files.file)$req$$.files.fileupload=$req$$.files.file;else{$res$$.status(400).send({error:"File kh\u00f4ng t\u1ed3n t\u1ea1i"});return}var $path$$=require("path"),$ext$$=$path$$.extname($req$$.files.fileupload.path);if($ext$$)if($ext$$=$ext$$.toLowerCase(),".xlsx"!=$ext$$&&".xml"!=$ext$$)$res$$.status(400).send("Ch\u1ec9 ch\u1ea5p nh\u1eadn c\u00e1c \u0111\u1ecbnh d\u1ea1ng file: xlsx,xml");else{var $root_dir_templates$$=
|
|
23
|
-
"/templates";$root_dir_templates$$+="/";findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});$user$$?fs.readFile($req$$.files.fileupload.path,function($err$$,$data$$){if($err$$)return $res$$($err$$);fs.existsSync($root_dir_templates$$+
|
|
24
|
-
"excels");let $newPath$$="excels/"+$user$$._id.toString()+"_"+$path$$.basename($req$$.files.fileupload.path);fs.unlink($req$$.files.fileupload.path,$e$$=>{$e$$&&console.error($e$$)});console.log("uploading template file",$root_dir_templates$$+$newPath$$);fs.writeFile($root_dir_templates$$+$newPath$$,$data$$,function($error$$){if($error$$)return console.error("Error upload file",$error$$),$res$$.status(404).send($error$$);$error$$="/templates/"+$newPath$$;
|
|
25
|
-
|
|
26
|
-
$req$$.connection.remoteAddress,async($error$jscomp$10_user$$,$_user$$)=>{if($error$jscomp$10_user$$)return $res$$.status(400).send({error:$error$jscomp$10_user$$.message||$error$jscomp$10_user$$.error||$error$jscomp$10_user$$});if($_user$$){$error$jscomp$10_user$$={local:$_user$$.local||{},email:$_user$$.email,name:$_user$$.name};let $profile$$=$req$$.body;if($profile$$.local)for($_phone_identify_key$$ in $profile$$.local)"_id"!==$_phone_identify_key$$&&
|
|
27
|
-
|
|
28
|
-
$error$jscomp$10_user$$.name=$profile$$.name));var $_phone_identify_key$$=$profile$$.phone;if($_phone_identify_key$$){let $tmp_u$$=await User.findOne({$or:[{"local.phone":$_phone_identify_key$$,email:$_phone_identify_key$$}]});if($tmp_u$$&&$tmp_u$$.email!==$error$jscomp$10_user$$.email)return $res$$.status(400).send({error:`S\u1ed1 \u0111i\u1ec7n tho\u1ea1i ${$_phone_identify_key$$} \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng`})}void 0!=$_phone_identify_key$$&&
|
|
29
|
-
$_phone_identify_key$$);void 0!=$profile$$.address&&($error$jscomp$10_user$$.local.address=$profile$$.address);void 0!=$profile$$.zalo&&($error$jscomp$10_user$$.local.zalo=$profile$$.zalo);void 0!=$profile$$.whatsapp&&($error$jscomp$10_user$$.local.whatsapp=$profile$$.whatsapp);void 0!=$profile$$.facebook&&($error$jscomp$10_user$$.local.facebook=$profile$$.facebook);void 0!=$profile$$.company&&($error$jscomp$10_user$$.local.company=$profile$$.company);void 0
|
|
30
|
-
$profile$$.picture);if(void 0!=$profile$$.email2){if($profile$$.email2&&!validator.isEmail($profile$$.email2))return $res$$.status(400).send({error:`Email ${$profile$$.email2} kh\u00f4ng h\u1ee3p l\u1ec7`});$error$jscomp$10_user$$.email2=$profile$$.email2}$error$jscomp$10_user$$.user_updated=$req$$.user.email;$error$jscomp$10_user$$.date_updated=new Date;User.findByIdAndUpdate($_user$$._id,$error$jscomp$10_user$$,async function($error$$,$rs$$){if($error
|
|
31
|
-
"User kh\u00f4ng t\u1ed3n t\u1ea1i"});log.create({id_app:"CHANGEPROFILE",id_func:"CHANGEPROFILE",action:"CHANGEPROFILE"},$_user$$.email,$req$$.header("user-agent"),$req$$);Customer.findOne({of_user:$rs$$.email,ma_kh:$rs$$.email.toUpperCase()},($e$jscomp$0$$,$cust$$)=>{$cust$$?($cust$$.ten_kh=$rs$$.name,$cust$$.save(($e$$,$_cust$$)=>{if($e$$)return console.error("can't update ten_kh for user",$rs$$.name,$e$$);global.clientRedis.set("stp:"+$_cust$$._id.toString(),
|
|
32
|
-
|
|
33
|
-
function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});if(!$user$$)return $res$$.status(400).send({error:"token kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb"});if(underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase()))User.findOne({email:$req$$.params.user},function($e$jscomp$0$$,$u$$){if($e$jscomp$0
|
|
34
|
-
" ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});$u$$.local=$u$$.local||{};$u$$.local.active=!0;$u$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);redisCache.set("user",$u$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 k\u00edch ho\u1ea1t th\u00e0nh c\u00f4ng"})})});else return $res$$.status(400).send({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n thay \u0111\u1ed5i m\u1eadt kh\u1ea9u c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng n\u00e0y"})})});
|
|
13
|
+
findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async($error$jscomp$1$$,$_user$$)=>{if($error$jscomp$1$$)return $res$jscomp$0$$.status(400).send({error:$error$jscomp$1$$.message||$error$jscomp$1$$.error||$error$jscomp$1$$});if($_user$$){const $user$$=await User.findOne({email:$_user$$.email});fs.readFile($req$$.files.fileupload.path,async function($err_orgin_file_size$$,$data$$){if($err_orgin_file_size$$)return $res$jscomp$0$$.status(400).send({error:$err_orgin_file_size$$.message||
|
|
14
|
+
$err_orgin_file_size$$.error||$err_orgin_file_size$$});var $originalname_p$$=$req$$.files.fileupload.originalname.split(" ").join("_");$err_orgin_file_size$$=configs.paths.images||$path$$.dirname($path$$.dirname(__dirname))+"/images";$err_orgin_file_size$$+="/";fs.existsSync($err_orgin_file_size$$+$folder$$)||fs.mkdirSync($err_orgin_file_size$$+$folder$$);$id_app$$&&"avatar"!=$folder$$&&($folder$$=$folder$$+"/"+$id_app$$,fs.existsSync($err_orgin_file_size$$+$folder$$)||fs.mkdirSync($err_orgin_file_size$$+
|
|
15
|
+
$folder$$));let $newPath$$=$folder$$+"/"+$user$$._id.toString()+"_"+(new Date).getTime().toString()+"_"+$originalname_p$$,$path_image$$;if(".png"!==$ext$$&&".jpeg"!==$ext$$&&".jpg"!==$ext$$&&".gif"!==$ext$$&&".webp"!==$ext$$)$path_image$$=$err_orgin_file_size$$+$newPath$$,fs.writeFile($path_image$$,$data$$,function($err$$){if($err$$)return $res$jscomp$0$$.status(400).send({error:$err$$.message||$err$$.error||$err$$});fs.unlink($req$$.files.fileupload.path,$e$$=>{$e$$&&console.error($e$$)});$req$$.query.json?
|
|
16
|
+
$res$jscomp$0$$.send({fileUrl:"/getfile/"+$newPath$$}):($res$jscomp$0$$.writeHead(200,{"Content-Type":"text/html"}),$res$jscomp$0$$.end("<html><head><title>/getfile/"+$newPath$$+"</title></head><body>success</body></html>"))});else{".webp"!==$ext$$&&($newPath$$+=".webp");$path_image$$=$err_orgin_file_size$$+$newPath$$;$originalname_p$$=$originalname_p$$.split(".");var $thumbPath$$=$newPath$$+".thumb."+$originalname_p$$[$originalname_p$$.length-1],$path_image_thumb$$=$err_orgin_file_size$$+$thumbPath$$,
|
|
17
|
+
$_gm$$=sharp($req$$.files.fileupload.path,{failOnError:!1});($err_orgin_file_size$$=await $_gm$$.metadata())&&"webp"!=$err_orgin_file_size$$.format&&($path_image_thumb$$+=".webp",$_gm$$=$_gm$$.webp({lossless:!1}));async.parallel([function($callback$$){setImmediate(async()=>{let $orgin_file_size$$=await $_gm$$.metadata();$orgin_file_size$$&&4096<$orgin_file_size$$.width?$_gm$$.resize({width:4096}).toFile($path_image$$,async function($error$$){$error$$?(console.error("save resize image:",$error$$.message,
|
|
18
|
+
". Ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd s\u1eed d\u1ee5ng file g\u1ed1c\n",$req$$.header("user-agent")),fs.writeFile($path_image$$,$data$$,$e$$=>{if($e$$)return $callback$$($error$$);$callback$$()})):(console.log("resize image",$path_image$$),$callback$$())}):fs.writeFile($path_image$$,$data$$,function($err$$){$callback$$($err$$)})})}],function($err$$){if($err$$)return $res$jscomp$0$$.status(400).send({error:$err$$.message||$err$$.error||$err$$});$_gm$$.resize({width:350}).toFile($path_image_thumb$$,
|
|
19
|
+
async function($error$jscomp$0$$){if($error$jscomp$0$$){console.error("Kh\u00f4ng th\u1ec3 t\u1ea1o thumbnail cho h\u00ecnh \u1ea3nh n\u00e0y\n"+$error$jscomp$0$$,$req$$.files.fileupload.path,". Ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd s\u1eed d\u1ee5ng file g\u1ed1c l\u00e0m thubnail\n",$req$$.header("user-agent"));try{await new Promise(($res$$,$rej$$)=>{fs.writeFile($path_image_thumb$$,$data$$,$e$$=>{if($e$$)return $rej$$($e$$);$res$$()})})}catch($error$$){return $res$jscomp$0$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 t\u1ea1o thumbnail cho h\u00ecnh \u1ea3nh n\u00e0y. L\u1ed7i: "+
|
|
20
|
+
($error$$.message||$error$$.error||$error$$)})}}fs.unlink($req$$.files.fileupload.path,$e$$=>{$e$$&&console.error($e$$)});let $path_avatar$$="/getfile/"+$newPath$$,$path_thumb$$="/getfile/"+$thumbPath$$;"avatars"==$folder$$?($user$$.local.picture=$path_avatar$$,$user$$.picture=$user$$.local.picture,$user$$.save(function($error$$){if($error$$)return $res$jscomp$0$$.status(400).send($error$$);$req$$.query.json?$res$jscomp$0$$.send({image:$path_avatar$$,thumb:$path_thumb$$,fileUrl:$path_avatar$$}):($res$jscomp$0$$.writeHead(200,
|
|
21
|
+
{"Content-Type":"text/html"}),$res$jscomp$0$$.end("<html><head><title>"+$path_avatar$$+"</title></head><body>success</body></html>"))})):$req$$.query.json?$res$jscomp$0$$.send({image:$path_avatar$$,thumb:$path_thumb$$,fileUrl:$path_avatar$$}):($res$jscomp$0$$.writeHead(200,{"Content-Type":"text/html"}),$res$jscomp$0$$.end("<html><head><title>"+$path_avatar$$+"</title></head><body>success</body></html>"))})})}})}else $res$jscomp$0$$.status(404).send({error:"Not found"})})});$router$$.route("/uploadexcel").post(function($req$$,
|
|
22
|
+
$res$$){let $access_token$$=$req$$.query.access_token;if(!$req$$.files.fileupload)if($req$$.files.file)$req$$.files.fileupload=$req$$.files.file;else{$res$$.status(400).send({error:"File kh\u00f4ng t\u1ed3n t\u1ea1i"});return}var $path$$=require("path"),$ext$$=$path$$.extname($req$$.files.fileupload.path);if($ext$$)if($ext$$=$ext$$.toLowerCase(),".xlsx"!=$ext$$&&".xml"!=$ext$$)$res$$.status(400).send("Ch\u1ec9 ch\u1ea5p nh\u1eadn c\u00e1c \u0111\u1ecbnh d\u1ea1ng file: xlsx,xml");else{var $root_dir_templates$$=
|
|
23
|
+
configs.paths.templates||$path$$.dirname($path$$.dirname(__dirname))+"/templates";$root_dir_templates$$+="/";findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});$user$$?fs.readFile($req$$.files.fileupload.path,function($err$$,$data$$){if($err$$)return $res$$($err$$);fs.existsSync($root_dir_templates$$+
|
|
24
|
+
"excels")||fs.mkdirSync($root_dir_templates$$+"excels");let $newPath$$="excels/"+$user$$._id.toString()+"_"+$path$$.basename($req$$.files.fileupload.path);fs.unlink($req$$.files.fileupload.path,$e$$=>{$e$$&&console.error($e$$)});console.log("uploading template file",$root_dir_templates$$+$newPath$$);fs.writeFile($root_dir_templates$$+$newPath$$,$data$$,function($error$$){if($error$$)return console.error("Error upload file",$error$$),$res$$.status(404).send($error$$);$error$$="/templates/"+$newPath$$;
|
|
25
|
+
console.log("Updated a file to ",$root_dir_templates$$+$newPath$$);if($req$$.query.json)return $res$$.send({fileUrl:$error$$});$res$$.writeHead(200,{"Content-Type":"text/html"});$res$$.end("<html><head><title>"+$error$$+"</title></head><body>success</body></html>")})}):$res$$.status(404).send({error:"Not found"})})}else $res$$.status(400).send("Ch\u1ec9 ch\u1ea5p nh\u1eadn c\u00e1c \u0111\u1ecbnh d\u1ea1ng file: xlsx,xml")});$router$$.route("/updateprofile").post(function($req$$,$res$$){findByToken($req$$.query.access_token,
|
|
26
|
+
$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async($error$jscomp$10_user$$,$_user$$)=>{if($error$jscomp$10_user$$)return $res$$.status(400).send({error:$error$jscomp$10_user$$.message||$error$jscomp$10_user$$.error||$error$jscomp$10_user$$});if($_user$$){$error$jscomp$10_user$$={local:$_user$$.local||{},email:$_user$$.email,name:$_user$$.name};let $profile$$=$req$$.body;if($profile$$.local)for($_phone_identify_key$$ in $profile$$.local)"_id"!==$_phone_identify_key$$&&
|
|
27
|
+
"active"!==$_phone_identify_key$$&&"password"!==$_phone_identify_key$$&&"rspassword"!==$_phone_identify_key$$&&"pin"!==$_phone_identify_key$$&&($error$jscomp$10_user$$.local[$_phone_identify_key$$]=$profile$$.local[$_phone_identify_key$$],void 0==$profile$$[$_phone_identify_key$$]&&($profile$$[$_phone_identify_key$$]=$profile$$.local[$_phone_identify_key$$]));$profile$$.name&&($_phone_identify_key$$=await global.getModel("assuser_identity"),$_phone_identify_key$$&&"1"===$_phone_identify_key$$.trang_thai||
|
|
28
|
+
($error$jscomp$10_user$$.local.name=$profile$$.name,$error$jscomp$10_user$$.name=$profile$$.name));var $_phone_identify_key$$=$profile$$.phone;if($_phone_identify_key$$){let $tmp_u$$=await User.findOne({$or:[{"local.phone":$_phone_identify_key$$,email:$_phone_identify_key$$}]});if($tmp_u$$&&$tmp_u$$.email!==$error$jscomp$10_user$$.email)return $res$$.status(400).send({error:`S\u1ed1 \u0111i\u1ec7n tho\u1ea1i ${$_phone_identify_key$$} \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng`})}void 0!=$_phone_identify_key$$&&
|
|
29
|
+
($error$jscomp$10_user$$.local.phone=$_phone_identify_key$$);void 0!=$profile$$.address&&($error$jscomp$10_user$$.local.address=$profile$$.address);void 0!=$profile$$.zalo&&($error$jscomp$10_user$$.local.zalo=$profile$$.zalo);void 0!=$profile$$.whatsapp&&($error$jscomp$10_user$$.local.whatsapp=$profile$$.whatsapp);void 0!=$profile$$.facebook&&($error$jscomp$10_user$$.local.facebook=$profile$$.facebook);void 0!=$profile$$.company&&($error$jscomp$10_user$$.local.company=$profile$$.company);void 0!=
|
|
30
|
+
$profile$$.picture&&($error$jscomp$10_user$$.local.picture=$profile$$.picture);if(void 0!=$profile$$.email2){if($profile$$.email2&&!validator.isEmail($profile$$.email2))return $res$$.status(400).send({error:`Email ${$profile$$.email2} kh\u00f4ng h\u1ee3p l\u1ec7`});$error$jscomp$10_user$$.email2=$profile$$.email2}$error$jscomp$10_user$$.user_updated=$req$$.user.email;$error$jscomp$10_user$$.date_updated=new Date;User.findByIdAndUpdate($_user$$._id,$error$jscomp$10_user$$,async function($error$$,$rs$$){if($error$$||
|
|
31
|
+
!$rs$$)return $res$$.status(400).send({error:$error$$||"User kh\u00f4ng t\u1ed3n t\u1ea1i"});log.create({id_app:"CHANGEPROFILE",id_func:"CHANGEPROFILE",action:"CHANGEPROFILE"},$_user$$.email,$req$$.header("user-agent"),$req$$);Customer.findOne({of_user:$rs$$.email,ma_kh:$rs$$.email.toUpperCase()},($e$jscomp$0$$,$cust$$)=>{$cust$$?($cust$$.ten_kh=$rs$$.name,$cust$$.save(($e$$,$_cust$$)=>{if($e$$)return console.error("can't update ten_kh for user",$rs$$.name,$e$$);global.clientRedis.set("stp:"+$_cust$$._id.toString(),
|
|
32
|
+
"")})):console.error("Not found customer of user",$rs$$.email)});$_user$$=await User.findById($_user$$._id).lean();redisCache.set("user",$_user$$,function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis");$res$$.send("\u0110\u00e3 c\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng")})})}else $res$$.status(404).send({error:"Not found"})})});$router$$.route("/activeByAdmin/:user").get(function($req$$,$res$$){const $usersAdmin$$=configs.admins;findByToken($req$$.query.access_token,$req$$.ip||
|
|
33
|
+
$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});if(!$user$$)return $res$$.status(400).send({error:"token kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb"});if(underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase()))User.findOne({email:$req$$.params.user},function($e$jscomp$0$$,$u$$){if($e$jscomp$0$$||
|
|
34
|
+
!$u$$)return $res$$.status(400).send({error:$req$$.params.user+" ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});$u$$.local=$u$$.local||{};$u$$.local.active=!0;$u$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);redisCache.set("user",$u$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 k\u00edch ho\u1ea1t th\u00e0nh c\u00f4ng"})})});else return $res$$.status(400).send({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n thay \u0111\u1ed5i m\u1eadt kh\u1ea9u c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng n\u00e0y"})})});
|
|
35
35
|
$router$$.route("/changepasswordByAdmin").post(function($req$$,$res$$){const $usersAdmin$$=configs.admins;let $body$$=$req$$.body;if(!$body$$.newPassword)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp m\u1eadt kh\u1ea9u m\u1edbi"});if($body$$.newPassword){if($body$$.reNewPassword!==$body$$.newPassword)return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPassword($body$$.newPassword))return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u ph\u1ea3i c\u00f3 \u00edt nh\u1ea5t 6 k\u00fd t\u1ef1 v\u00e0 bao g\u1ed3m \u00edt nh\u1ea5t m\u1ed9t ch\u1eef s\u1ed1, m\u1ed9t ch\u1eef hoa v\u00e0 m\u1ed9t ch\u1eef th\u01b0\u1eddng"})}findByToken($req$$.query.access_token,
|
|
36
36
|
$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});if(!$user$$)return $res$$.status(400).send({error:"token kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb"});if(underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase()))User.findOne({email:$body$$.email},function($e$jscomp$0$$,$u$$){if($e$jscomp$0$$||
|
|
37
37
|
!$u$$)return $res$$.status(400).send({error:$body$$.email+" ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});$u$$.local.password=$u$$.generateHash($u$$.email+$body$$.newPassword);$u$$.local.rspassword=null;$u$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);Token.deleteMany({email:$body$$.email,ip:{$in:["",null,void 0]}},$e$$=>{$e$$&&console.log("error when remove old tokens",$e$$)});log.create({id_app:"CHANGEPASSWORD",id_func:"CHANGEPASSWORD",action:"CHANGEPASSWORD"},
|
package/server/route.js
CHANGED
|
@@ -25,8 +25,8 @@ if($req$$.query.id_app){let $id_app$$=$req$$.query.id_app;appModel.findOne({_id:
|
|
|
25
25
|
$file$$)($public_router$$),$funcs_public_inited$$[$file$$]=$file$$)}));$createRateLimiterMiddleware_limiter_others$$=await $createRateLimiterMiddleware_limiter_others$$(configs.limitRequest.other||{},"other");$app$$.get("/getfile/:folder/:filename",$createRateLimiterMiddleware_limiter_others$$,async function($orgin_file_size_req$$,$res$$){let $root_dir$$=configs.paths.images||path.join(__dirname,"images"),$imgPath$$=path.join($root_dir$$,$orgin_file_size_req$$.params.folder,$orgin_file_size_req$$.params.filename);
|
|
26
26
|
if(fs.existsSync($imgPath$$)){let $size$$,$cache$$;if($orgin_file_size_req$$.query.size||$orgin_file_size_req$$.query.resize)switch(String($orgin_file_size_req$$.query.size||$orgin_file_size_req$$.query.resize).toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "128":$size$$=128;$cache$$=!0;break;case "320":case "S":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;default:try{$size$$=Number($orgin_file_size_req$$.query.size||
|
|
27
27
|
$orgin_file_size_req$$.query.resize)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}if($size$$){let $file_name_resize$$=path.join($root_dir$$,$orgin_file_size_req$$.params.folder,String($size$$)+"."+$orgin_file_size_req$$.params.filename);if(fs.existsSync($file_name_resize$$))return sharp($file_name_resize$$,{failOnError:!1}).pipe($res$$);let $_gm$$=sharp($imgPath$$,{failOnError:!1});($orgin_file_size_req$$=await $_gm$$.metadata())&&$size$$&&$size$$<$orgin_file_size_req$$.width&&
|
|
28
|
-
$size$$<$orgin_file_size_req$$.height&&($_gm$$=$_gm$$.resize({width:$size$$}))
|
|
29
|
-
$app$$.get("/labels/:labelid",$createRateLimiterMiddleware_limiter_others$$,function($labelid_req$$,$res$$){$labelid_req$$=$labelid_req$$.params.labelid.toUpperCase();$Labelinfo$$.find({labelid:$labelid_req$$}).lean().exec(($e$$,$labels$$)=>{if($e$$)return $res$$.status(400).send($e$$);let $_labels$$={};$labels$$.forEach($l$$=>{$_labels$$[$l$$.textid]=$l$$});$res$$.send($_labels$$)})});if(configs.has_api_barcode){const $qr$$=require("qr-image");$app$$.get("/qrcode"
|
|
30
|
-
function($req$$,$res$$){let $report$$=$req$$.query.report;$report$$||($report$$=$req$$.query.data)&&($report$$=Buffer.from($report$$,"base64").toString("utf8"));if(!$report$$)return $res$$.status(400).send("miss parameter 'report'");setImmediate(()=>{const $code$$=$qr$$.image($report$$,{type:"svg"});$res$$.type("svg");$code$$.pipe($res$$)})});const $bwipjs$$=require("bwip-js"),$stream$$=require("stream");$app$$.get("/barcode",$createRateLimiterMiddleware_limiter_others$$,
|
|
31
|
-
$height_req$$.query.code||"code128",$data$$=$height_req$$.query.data;$height_req$$=Number($height_req$$.query.height||10);if(!$data$$)return $res$$.status(400).send({error:"Thi\u1ebfu c\u00e1c tham s\u1ed1 data"});$bwipjs$$.toBuffer({bcid:$code$$,text:$data$$,scale:3,height:$height_req$$,includetext:!0,textxalign:"center"},function($bufferStream_e$$,$png$$){$bufferStream_e$$?(console.error($bufferStream_e$$,$code$$,$data$$),$res$$.status(400).send({error:$bufferStream_e$$.message
|
|
32
|
-
$bufferStream_e$$})):($bufferStream_e$$=new $stream$$.PassThrough,$bufferStream_e$$.end($png$$),$bufferStream_e$$.pipe($res$$))})})}}$cb$$()};
|
|
28
|
+
$size$$<$orgin_file_size_req$$.height&&($_gm$$=$_gm$$.resize({width:$size$$}));$orgin_file_size_req$$&&"webp"!=$orgin_file_size_req$$.format&&($_gm$$=$_gm$$.webp({lossless:!1}));$cache$$&&setImmediate(()=>{$_gm$$.toFile($file_name_resize$$,$error$$=>{if($error$$)return console.error("save resize image:",$error$$.message);console.log("cache file",$file_name_resize$$)})});$_gm$$.pipe($res$$)}else $res$$.sendFile($imgPath$$)}else $res$$.sendFile(path.join(__dirname,"images","others","noimage.png"))});
|
|
29
|
+
const $Labelinfo$$=global.getModel("labelinfo");$app$$.get("/labels/:labelid",$createRateLimiterMiddleware_limiter_others$$,function($labelid_req$$,$res$$){$labelid_req$$=$labelid_req$$.params.labelid.toUpperCase();$Labelinfo$$.find({labelid:$labelid_req$$}).lean().exec(($e$$,$labels$$)=>{if($e$$)return $res$$.status(400).send($e$$);let $_labels$$={};$labels$$.forEach($l$$=>{$_labels$$[$l$$.textid]=$l$$});$res$$.send($_labels$$)})});if(configs.has_api_barcode){const $qr$$=require("qr-image");$app$$.get("/qrcode",
|
|
30
|
+
$createRateLimiterMiddleware_limiter_others$$,function($req$$,$res$$){let $report$$=$req$$.query.report;$report$$||($report$$=$req$$.query.data)&&($report$$=Buffer.from($report$$,"base64").toString("utf8"));if(!$report$$)return $res$$.status(400).send("miss parameter 'report'");setImmediate(()=>{const $code$$=$qr$$.image($report$$,{type:"svg"});$res$$.type("svg");$code$$.pipe($res$$)})});const $bwipjs$$=require("bwip-js"),$stream$$=require("stream");$app$$.get("/barcode",$createRateLimiterMiddleware_limiter_others$$,
|
|
31
|
+
function($height_req$$,$res$$){let $code$$=$height_req$$.query.code||"code128",$data$$=$height_req$$.query.data;$height_req$$=Number($height_req$$.query.height||10);if(!$data$$)return $res$$.status(400).send({error:"Thi\u1ebfu c\u00e1c tham s\u1ed1 data"});$bwipjs$$.toBuffer({bcid:$code$$,text:$data$$,scale:3,height:$height_req$$,includetext:!0,textxalign:"center"},function($bufferStream_e$$,$png$$){$bufferStream_e$$?(console.error($bufferStream_e$$,$code$$,$data$$),$res$$.status(400).send({error:$bufferStream_e$$.message||
|
|
32
|
+
$bufferStream_e$$.error||$bufferStream_e$$})):($bufferStream_e$$=new $stream$$.PassThrough,$bufferStream_e$$.end($png$$),$bufferStream_e$$.pipe($res$$))})})}}$cb$$()};
|