UNPKG

flexbiz-server

Version:

Flexible Server

9 lines (8 loc) 3.21 kB
const {difference}=require("../libs/utils"); function cleanObjectForJSON($obj$$){if($obj$$===null||typeof $obj$$!=="object")return $obj$$;if($obj$$._bsontype==="ObjectID"||$obj$$.constructor?.name==="ObjectId"||$obj$$.constructor?.name==="ObjectID")return $obj$$.toString();if($obj$$ instanceof Date||$obj$$.constructor?.name==="Date"||typeof $obj$$.getMonth==="function")try{var $cleaned_time$$=$obj$$.getTime();return isNaN($cleaned_time$$)?null:$obj$$.toISOString()}catch($e$$){return null}if(Array.isArray($obj$$))return $obj$$.map($item$$=>cleanObjectForJSON($item$$)); $cleaned_time$$={};for(const $key$$ in $obj$$)Object.prototype.hasOwnProperty.call($obj$$,$key$$)&&($cleaned_time$$[$key$$]=cleanObjectForJSON($obj$$[$key$$]));return $cleaned_time$$} const historyHandler=($ctrl$$,$req$$,$mainCallback$$)=>{var $id_query$$=$req$$.params.id;$id_query$$={id_app:$req$$.user.current_id_app,$or:[{"data.id":$id_query$$},{"data.data.id_link":$id_query$$},{"data.oldData.id_link":$id_query$$}]};let $actions$$=$req$$.query.actions;$actions$$?($actions$$=$actions$$.split(","),$id_query$$.action={$in:$actions$$,$ne:"GET"}):$id_query$$.action={$ne:"GET"};global.getModel("log").find($id_query$$).lean().then(async function($rs$$){await $rs$$.asyncJoinModel2($req$$.user.current_id_app, "participant",{where:{user_created:"email"},fields:[{name_user_created:"name"}]});await $rs$$.filter($r$$=>$r$$.data_changed&&($r$$.data_changed.trang_thai||($r$$.data_changed.progress||"").toString())).map($r$$=>$r$$.data_changed).asyncJoinModel2($req$$.user.current_id_app,"trangthai",{where:$item$$=>({ma_trang_thai:$item$$.trang_thai||($item$$.progress||"").toString(),ma_ct:($ctrl$$.name||"").toUpperCase()}),fields:[{ten_trang_thai:"ten_trang_thai"}]});$rs$$.forEach($r$$=>{$r$$.ip=$r$$.ip||""}); for(var $log_rows$$ of $rs$$){$log_rows$$.data?.newData?.toObject&&($log_rows$$.data.newData=$log_rows$$.data?.newData?.toObject());$log_rows$$.data?.oldData?.toObject&&($log_rows$$.data.oldData=$log_rows$$.data?.oldData?.toObject());$log_rows$$.data_changed&&$log_rows$$.data_changed.toObject&&($log_rows$$.data_changed=$log_rows$$.data_changed.toObject());$log_rows$$?.data?.newData?._id&&($log_rows$$.data.newData._id=$log_rows$$.data.newData._id.toString());$log_rows$$?.data?.oldData?._id&&($log_rows$$.data.oldData._id= $log_rows$$.data.oldData._id.toString());let $data_changed$$=$log_rows$$.data_changed||($log_rows$$.data?difference($log_rows$$.data.newData,$log_rows$$.data.oldData):{});delete $data_changed$$.is_full_data;delete $data_changed$$.collection_name;delete $data_changed$$.date_updated;delete $data_changed$$.user_updated;delete $data_changed$$.approve_data;$log_rows$$.data_changed=cleanObjectForJSON($data_changed$$)}$log_rows$$=$rs$$.map($r$$=>$r$$.data?.data).filter($r$$=>$r$$);$ctrl$$.onView($req$$.user, $log_rows$$,$e$$=>{if($e$$)return Logger.error("[historyHandler] log onview",$e$$),$e$$.error?$mainCallback$$($e$$):$mainCallback$$({error:$e$$.message||$e$$});$mainCallback$$(null,$rs$$)},{req:$req$$})}).catch($e$$=>{Logger.error("[historyHandler] history query",$e$$);return $e$$.error?$mainCallback$$($e$$):$mainCallback$$({error:$e$$.message||$e$$})})};module.exports=historyHandler;