flexbiz-server
Version:
Flexible Server
5 lines (4 loc) • 1.62 kB
JavaScript
const {onAfterCommit}=require("../libs/sessionContext"),newsfeedSchema=new Schema({id_app:{type:String,required:!0},model_name:{type:String,required:!0},id:{type:String,required:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
(global.configs||{}).createIndexes&&(newsfeedSchema.index({id_app:1,model_name:1,id:1}),newsfeedSchema.index({date_updated:-1}),newsfeedSchema.index({date_created:-1}),newsfeedSchema.index({user_created:1}),newsfeedSchema.index({model_name:"text"}),newsfeedSchema.index({model_name:1}),newsfeedSchema.index({status:1}),newsfeedSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.newsfeed||mongoose.model("newsfeed",newsfeedSchema);
model.add=async($modelName$$,$obj$$)=>{onAfterCommit(async()=>{await model.delete($obj$$._id.toString());let $newsfeed$$=new model({id_app:$obj$$.id_app,model_name:$modelName$$,id:$obj$$._id.toString(),status:$obj$$.status,date_created:$obj$$.date_created,date_updated:$obj$$.date_updated,user_created:$obj$$.user_created,user_updated:$obj$$.user_updated});await new Promise(($resolve$$,$reject$$)=>{$newsfeed$$.save(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$.toObject())})})})};
model.delete=async $id$$=>{onAfterCommit(async()=>{await new Promise(($resolve$$,$reject$$)=>{model.deleteMany({id:$id$$},($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})})};module.exports=model;