Files
ontime/apps/server/src/api-data/session/session.router.ts
T
Alex Christoffer Rasmussen 7c1d2f4554 refactor: small cleanups (#2059)
* refactor: remove unneeded async

* chore: add express Router type to all routes

* refactor: don't use index in react key

* refactor: correctly get error message in excel route

* refactor: avoid exporting muteable values
2026-04-26 17:32:50 +02:00

45 lines
1.4 KiB
TypeScript

import express from 'express';
import type { Request, Response, Router } from 'express';
import type { ErrorResponse, GetInfo, GetUrl, SessionStats } from 'ontime-types';
import { getErrorMessage } from 'ontime-utils';
import * as sessionService from './session.service.js';
import { validateGenerateUrl } from './session.validation.js';
export const router: Router = express.Router();
router.get('/', async (_req: Request, res: Response<SessionStats | ErrorResponse>) => {
try {
const stats = await sessionService.getSessionStats();
res.status(200).send(stats);
} catch (error) {
const message = getErrorMessage(error);
res.status(500).send({ message });
}
});
router.get('/info', (_req: Request, res: Response<GetInfo | ErrorResponse>) => {
try {
const info = sessionService.getInfo();
res.status(200).send(info);
} catch (error) {
const message = getErrorMessage(error);
res.status(500).send({ message });
}
});
router.post('/url', validateGenerateUrl, (req: Request, res: Response<GetUrl | ErrorResponse>) => {
try {
const url = sessionService.generateShareUrl(req.body.baseUrl, req.body.path, {
authenticate: req.body.authenticate,
lockConfig: req.body.lockConfig,
lockNav: req.body.lockNav,
preset: req.body.preset,
});
res.status(200).send({ url: url.toString() });
} catch (error) {
const message = getErrorMessage(error);
res.status(500).send({ message });
}
});