monitor/core/routes/serverLogPartial.js
2025-04-16 22:30:27 +07:00

38 lines
1.2 KiB
JavaScript

const modulename = 'WebServer:ServerLogPartial';
import consoleFactory from '@lib/console';
const console = consoleFactory(modulename);
/**
* Returns the output page containing the admin log.
* @param {object} ctx
*/
export default async function ServerLogPartial(ctx) {
//Check permissions
if (!ctx.admin.hasPermission('server.log.view')) {
return sendTypedResp({ error: 'You don\'t have permission to call this endpoint.' });
}
const isDigit = /^\d{13}$/;
const sliceSize = 500;
if (ctx.request.query.dir === 'older' && isDigit.test(ctx.request.query.ref)) {
const log = txCore.logger.server.readPartialOlder(ctx.request.query.ref, sliceSize);
return ctx.send({
boundry: log.length < sliceSize,
log,
});
} else if (ctx.request.query.dir === 'newer' && isDigit.test(ctx.request.query.ref)) {
const log = txCore.logger.server.readPartialNewer(ctx.request.query.ref, sliceSize);
return ctx.send({
boundry: log.length < sliceSize,
log,
});
} else {
return ctx.send({
boundry: true,
log: txCore.logger.server.getRecentBuffer(),
});
}
};