@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
55 lines (44 loc) • 1.46 kB
text/typescript
import {Controller, RouteGet, RouteParamPath, RouteParamQuery} from './Controller.ts';
import {Logger} from 'winston';
export class LogsController extends Controller {
constructor(subPath: string, private readonly queryLogger: Logger) {
super(subPath);
}
('/:driveId')
async getConfig(('driveId') driveId: string,
('from') from?: number,
('until') until?: number,
('jobId') jobId?: string,
('order') order?: 'desc' | 'asc',
('offset') offset?: number
) {
if (!until && !from) {
if (order === 'desc') {
until = +new Date();
} else {
from = +new Date();
}
}
const options: any = {
from: from ? new Date(+from) : undefined,
until: until ? new Date(+until) : undefined,
jobId,
order: order || 'asc',
start: 0,
limit: 100,
fields: undefined
};
options['driveId'] = driveId;
const results = await new Promise((resolve, reject) => this.queryLogger.query(options, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
}));
if (jobId) {
return results['jobLogFile'].slice(offset || 0);
}
return results['dailyRotateFile'].reverse().slice(offset || 0);
}
}