@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
60 lines (59 loc) • 2.34 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Controller, RouteGet } from './Controller.js';
export class LogsController extends Controller {
constructor(subPath, queryLogger) {
super(subPath);
Object.defineProperty(this, "queryLogger", {
enumerable: true,
configurable: true,
writable: true,
value: queryLogger
});
}
async getConfig(ctx) {
const driveId = await ctx.routeParamPath('driveId');
let from = await ctx.routeParamQuery('from');
let until = await ctx.routeParamQuery('until');
const jobId = await ctx.routeParamQuery('jobId');
const order = await ctx.routeParamQuery('order');
const offset = await ctx.routeParamQuery('offset');
if (!until && !from) {
if (order === 'desc') {
until = +new Date();
}
else {
from = +new Date();
}
}
const options = {
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);
}
}
__decorate([
RouteGet('/:driveId')
], LogsController.prototype, "getConfig", null);