From 5f038208910a3a1949ccef9eca1a5667c287da62 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Tue, 16 Dec 2025 11:49:14 -0500 Subject: [PATCH] added first pass of homepage --- api/src/index.ts | 2 ++ api/src/routes/docs.ts | 24 ++++++++++++++++++++++++ ui/src/api/docs.ts | 18 ++++++++++++++++++ ui/src/pages/Homepage.vue | 15 +++++++++++++-- 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 api/src/routes/docs.ts create mode 100644 ui/src/api/docs.ts diff --git a/api/src/index.ts b/api/src/index.ts index 7230a30..701d49c 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -64,6 +64,7 @@ import { authRouter } from './routes/auth'; import { roles, memberRoles } from './routes/roles'; import { courseRouter, eventRouter } from './routes/course'; import { calendarRouter } from './routes/calendar'; +import { docsRouter } from './routes/docs'; app.use('/application', applicationRouter); app.use('/ranks', ranks); @@ -77,6 +78,7 @@ app.use('/memberRoles', memberRoles) app.use('/course', courseRouter) app.use('/courseEvent', eventRouter) app.use('/calendar', calendarRouter) +app.use('/docs', docsRouter) app.use('/', authRouter) app.get('/ping', (req, res) => { diff --git a/api/src/routes/docs.ts b/api/src/routes/docs.ts new file mode 100644 index 0000000..13ada87 --- /dev/null +++ b/api/src/routes/docs.ts @@ -0,0 +1,24 @@ +const express = require('express'); +const router = express.Router(); + +import { Request, Response } from 'express'; +import { requireLogin } from '../middleware/auth'; + +router.get('/welcome', [requireLogin], async (req: Request, res: Response) => { + const output = await fetch(`${process.env.DOC_HOST}/api/pages/717`, { + headers: { + Authorization: `Token ${process.env.DOC_TOKEN_ID}:${process.env.DOC_TOKEN_SECRET}`, + } + }) + + if (output.ok) { + const out = await output.json(); + res.status(200).json(out.html); + } else { + console.error("Failed to fetch LOA policy from bookstack"); + res.sendStatus(500); + } +}) + + +export const docsRouter = router; \ No newline at end of file diff --git a/ui/src/api/docs.ts b/ui/src/api/docs.ts new file mode 100644 index 0000000..24c31c8 --- /dev/null +++ b/ui/src/api/docs.ts @@ -0,0 +1,18 @@ +// @ts-ignore +const addr = import.meta.env.VITE_APIHOST; + +export async function getWelcomeMessage(): Promise { + const res = await fetch(`${addr}/docs/welcome`, { + method: "GET", + credentials: 'include', + }); + if (res.ok) { + const out = res.json(); + if (!out) { + return null; + } + return out; + } else { + return null; + } +} \ No newline at end of file diff --git a/ui/src/pages/Homepage.vue b/ui/src/pages/Homepage.vue index 172fdbb..f339311 100644 --- a/ui/src/pages/Homepage.vue +++ b/ui/src/pages/Homepage.vue @@ -1,6 +1,8 @@