UNPKG

kpiplus

Version:

KPI+

1 lines 1.45 kB
var async=require("async"),underscore=require("underscore");let models=[{name:"user",key:["email"]},{name:"dmvt",key:["ma_vt"]},{name:"customer",key:["ma_kh","_id"]},{name:"qts",key:["so_the_ts","_id"]},{name:"app",key:["_id"]},{name:"group",key:["_id"]},{name:"dvcs",key:["_id","ma_dvcs"]},{name:"dmkho",key:["ma_kho"]},{name:"dmbp",key:["ma_bp"]},{name:"dmnv",key:["ma_nv"]},{name:"dmban",key:["ma_ban"]},{name:"contract",key:["so_hd"]},{name:"dmphi",key:["ma_phi"]},{name:"dmdt",key:["ma_dt"]},{name:"account",key:["tk"]},{name:"labelinfo",key:["labelid"]},{name:"dmphi",key:["ma_phi"]}];exports.cachedKeys=(()=>{let e={};return models.forEach(a=>{e[a.name]=1}),e}),exports.set=function(e=null,a=null,n=(()=>{})){async.map(models.filter(a=>!e||a.name==e),(e,n)=>{if(a)e.key.forEach(n=>{let m="_id"!==n?a.id_app+":"+n+":"+a[n]:"stp:"+a._id.toString();clientRedis.set(m,JSON.stringify(a)),console.log("cached data",e.name,m)}),n(null);else{require("../models/"+e.name).find({}).lean().exec((a,m)=>{if(a)return n(a);m.forEach(a=>{e.key.forEach(e=>{let n="_id"!==e?a.id_app+":"+e+":"+a[e]:"stp:"+a._id.toString();clientRedis.set(n,JSON.stringify(a))})}),console.log("cached data",e.name),n(null)})}},(a,m)=>{console.log("cached data",e),n(a,m)})},exports.remove=function(e,a,n=(()=>{})){let m=underscore.find(models,a=>a.name==e);m&&m.key.forEach(e=>{let n="_id"!==e?a.id_app+":"+e+":"+a[e]:"stp:"+a._id.toString();clientRedis.set(n,"")}),n(null)};