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", "program": "${workspaceFolder:dtp-libertylinks}/dtp-libertylinks-cli.js",
"console": "integratedTerminal", "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({ EmailBlacklistSchema.index({
email: 1, email: 1,
'flags.isVerified': true, 'flags.isVerified': 1,
}, { }, {
partialFilterExpression: { partialFilterExpression: {
'flags.isVerified': true, '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' }, created: { type: Date, required: true, default: Date.now, index: -1, expires: '7d' },
resourceType: { type: String, enum: ['Link', 'User'], required: true }, resourceType: { type: String, enum: ['Link', 'User'], required: true },
resource: { type: Schema.ObjectId, required: true, index: 1, ref: 'Link' }, 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 }, geoip: { type: GeoIp },
}); });

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

@ -1,7 +1,7 @@
mixin renderSidebarLink (link) mixin renderSidebarLink (link)
div div
a( a(
href=link.href, href= link.href,
data-visit-url= `/link/${link._id}/visit`, data-visit-url= `/link/${link._id}/visit`,
onclick="return dtp.app.visitLink(event);", onclick="return dtp.app.visitLink(event);",
).dtp-link-button.uk-display-block.uk-border-rounded.uk-width-1-1= link.label ).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 * SERVER INIT
*/ */
@ -155,6 +164,10 @@ module.makeBucket = async (target) => {
await module.deleteOtpAccount(target); await module.deleteOtpAccount(target);
break; break;
case 'reset-indexes':
await module.resetIndexes();
break;
default: default:
throw new Error(`invalid action: ${module.app.options.action}`); 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 }); module.log.error('model name collision', { name: model.modelName });
process.exit(-1); 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