diff --git a/src/app/controllers/home.ts b/src/app/controllers/home.ts index e1e66b2..7c2fb21 100644 --- a/src/app/controllers/home.ts +++ b/src/app/controllers/home.ts @@ -2,7 +2,7 @@ // Copyright (C) 2025 DTP Technologies, LLC // All Rights Reserved -import { Request, Response } from "express"; +import { NextFunction, Request, Response } from "express"; import { SidebarService } from "../services/sidebar.js"; @@ -10,6 +10,7 @@ import { WebServer, WebController, } from '../../lib/dtplib.js'; +import { FeedService } from "app/services/feed.js"; export class HomeController extends WebController { @@ -27,12 +28,18 @@ export class HomeController extends WebController { this.router.get('/', sidebarService.middleware(), this.getHome.bind(this)); } - async getHome (req: Request, res: Response) : Promise { - this.log.info('session debug', { sessionId: req.session.id }); - if (req.user) { - return res.render('home-auth'); + async getHome (req: Request, res: Response, next: NextFunction) : Promise { + const feedService = this.getService("feed"); + try { + res.locals.feedLibrary = await feedService.getUnifiedFeed({ p: 1, skip: 0, cpp: 20 }); + if (req.user) { + return res.render('home-auth'); + } + return res.render('home'); + } catch (error) { + this.log.error("failed to present the Home view", { error }); + return next(error); } - return res.render('home'); } } diff --git a/src/app/views/home.pug b/src/app/views/home.pug index 4eb45ad..40742a8 100644 --- a/src/app/views/home.pug +++ b/src/app/views/home.pug @@ -8,3 +8,16 @@ block content .app-title-card .app-title= site.name .app-description= site.description + + section.uk-section.uk-section-secondary.uk-section-small + .uk-container + if Array.isArray(feedLibrary.items) && (feedLibrary.items.length > 0) + ul.uk-list.uk-list-small.uk-list-divider + each feedItem in feedLibrary.items + li + a(href= feedItem.link, target="_blank").uk-link-reset.uk-display-block + p.uk-text-lead.uk-margin-remove= feedItem.title + div!= feedItem.summary + .uk-text-small.uk-text-muted Published #{dayjs(feedItem.created).format("MMMM DD, YYYY")}, at #{dayjs(feedItem.created).format("hh:mm a")} + else + div There are no feed items to display \ No newline at end of file