A web application allowing people to create an account, configure a profile, and share a list of URLs on that profile.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

35 lines
878 B

// sidebar.js
// Copyright (C) 2021 Digital Telepresence, LLC
// License: Apache-2.0
'use strict';
const { SiteService } = require('../../lib/site-lib');
class SidebarService extends SiteService {
constructor (dtp) {
super(dtp, module.exports);
}
middleware ( ) {
return async (req, res, next) => {
const { link: linkService, user: userService } = this.dtp.services;
try {
res.locals.popularLinks = await linkService.getPopular(3);
res.locals.recentLinks = await linkService.getRecent(3);
res.locals.recentUsers = await userService.getRecent(3);
return next();
} catch (error) {
this.log.error('failed to populate sidebar', { error });
return next(error);
}
};
}
}
module.exports = {
slug: 'sidebar',
name: 'sidebar',
create: (dtp) => { return new SidebarService(dtp); },
};