Browse Source

some cleanup

master
Rob Colbert 2 years ago
parent
commit
d201c59c7a
  1. 2
      .vscode/launch.json
  2. 2
      app/models/email-blacklist.js
  3. 2
      app/models/resource-visit.js
  4. 2
      app/views/components/page-sidebar.pug
  5. 13
      dtp-libertylinks-cli.js
  6. 24
      lib/site-platform.js

2
.vscode/launch.json

@ -26,7 +26,7 @@
],
"program": "${workspaceFolder:dtp-libertylinks}/dtp-libertylinks-cli.js",
"console": "integratedTerminal",
"args": ["--action=make-bucket", "images"]
"args": ["--action=reset-indexes", "all"]
}
]
}

2
app/models/email-blacklist.js

@ -24,7 +24,7 @@ const EmailBlacklistSchema = new Schema({
EmailBlacklistSchema.index({
email: 1,
'flags.isVerified': true,
'flags.isVerified': 1,
}, {
partialFilterExpression: {
'flags.isVerified': true,

2
app/models/resource-visit.js

@ -13,7 +13,7 @@ const ResourceVisitSchema = new Schema({
created: { type: Date, required: true, default: Date.now, index: -1, expires: '7d' },
resourceType: { type: String, enum: ['Link', 'User'], required: true },
resource: { type: Schema.ObjectId, required: true, index: 1, ref: 'Link' },
user: { type: Schema.ObjectId, index: 1, ref: 'User' },
user: { type: Schema.ObjectId, ref: 'User' },
geoip: { type: GeoIp },
});

2
app/views/components/page-sidebar.pug

@ -1,7 +1,7 @@
mixin renderSidebarLink (link)
div
a(
href=link.href,
href= link.href,
data-visit-url= `/link/${link._id}/visit`,
onclick="return dtp.app.visitLink(event);",
).dtp-link-button.uk-display-block.uk-border-rounded.uk-width-1-1= link.label

13
dtp-libertylinks-cli.js

@ -101,6 +101,15 @@ module.makeBucket = async (target) => {
}
};
module.resetIndexes = async ( ) => {
try {
module.log.info('resetting MongoDB indexes...');
await SitePlatform.resetIndexes(module);
} catch (error) {
module.log.error('failed to reset database indexes', { error });
}
};
/*
* SERVER INIT
*/
@ -155,6 +164,10 @@ module.makeBucket = async (target) => {
await module.deleteOtpAccount(target);
break;
case 'reset-indexes':
await module.resetIndexes();
break;
default:
throw new Error(`invalid action: ${module.app.options.action}`);
}

24
lib/site-platform.js

@ -57,7 +57,29 @@ module.loadModels = async (dtp) => {
module.log.error('model name collision', { name: model.modelName });
process.exit(-1);
}
module.models[model.modelName] = model;
module.models.push(model);
});
};
module.exports.resetIndexes = async (dtp) => {
await SiteAsync.each(dtp.models, module.resetIndex);
};
module.resetIndex = async (model) => {
return new Promise(async (resolve, reject) => {
module.log.info('dropping model indexes', { model: model.modelName });
model.collection.dropIndexes((err) => {
if (err) {
return reject(err);
}
module.log.info('creating model indexes', { model: model.modelName });
model.ensureIndexes((err) => {
if (err) {
return reject(err);
}
return resolve(model);
});
});
});
};

Loading…
Cancel
Save