monitor/core/routes/history/actionModal.ts
2025-04-16 22:30:27 +07:00

40 lines
1.2 KiB
TypeScript

const modulename = 'WebServer:HistoryActionModal';
import consoleFactory from '@lib/console';
import { AuthedCtx } from '@modules/WebServer/ctxTypes';
import { HistoryActionModalResp } from '@shared/historyApiTypes';
import { now } from '@lib/misc';
const console = consoleFactory(modulename);
/**
* Returns the history action modal data
*/
export default async function HistoryActionModal(ctx: AuthedCtx) {
//Sanity check
if (typeof ctx.query === 'undefined') {
return ctx.utils.error(400, 'Invalid Request');
}
const { id: actionId } = ctx.query;
const sendTypedResp = (data: HistoryActionModalResp) => ctx.send(data);
//Checking action id
if (typeof actionId !== 'string' || !actionId.length) {
return sendTypedResp({ error: 'Invalid action ID.' });
}
//Getting the action data
let actionData;
try {
actionData = txCore.database.actions.findOne(actionId)
if (!actionData) return sendTypedResp({ error: 'Action not found' });
} catch (error) {
return sendTypedResp({ error: `Getting history action failed with error: ${(error as Error).message}` });
}
//Sending the data
return sendTypedResp({
serverTime: now(),
action: actionData,
});
};