swaf/dist/models/Log.js

56 lines
7.5 KiB
JavaScript

import Model from "../db/Model";
import { LogLevel } from "../Logger";
import Validator from "../db/Validator";
export default class Log extends Model {
defineProperties() {
this.defineProperty('level', new Validator().defined());
this.defineProperty('message', new Validator().defined().between(0, 65535));
this.defineProperty('log_id', new Validator().acceptUndefined().length(16));
this.defineProperty('error_name', new Validator().acceptUndefined().between(0, 128));
this.defineProperty('error_message', new Validator().acceptUndefined().between(0, 512));
this.defineProperty('error_stack', new Validator().acceptUndefined().between(0, 65535));
this.defineProperty('created_at', new Validator());
}
getLevel() {
if (typeof this.level !== 'number')
return 'ERROR';
return LogLevel[this.level];
}
setLevel(level) {
this.level = LogLevel[level];
}
getLogID() {
if (!this.log_id)
return null;
const chars = this.log_id.toString('hex');
let out = '';
let i = 0;
for (const l of [8, 4, 4, 4, 12]) {
if (i > 0)
out += '-';
out += chars.substr(i, l);
i += l;
}
return out;
}
setLogID(buffer) {
this.log_id = buffer;
}
getErrorName() {
return this.error_name || '';
}
getErrorMessage() {
return this.error_message || '';
}
getErrorStack() {
return this.error_stack || '';
}
setError(error) {
if (!error)
return;
this.error_name = error.name;
this.error_message = error.message;
this.error_stack = error.stack;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJtb2RlbHMvTG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQUMsUUFBUSxFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sR0FBSSxTQUFRLEtBQUs7SUFTeEIsZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQVMsT0FBTyxFQUFFLElBQUksU0FBUyxFQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsY0FBYyxDQUFTLFNBQVMsRUFBRSxJQUFJLFNBQVMsRUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsY0FBYyxDQUFTLFFBQVEsRUFBRSxJQUFJLFNBQVMsRUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxjQUFjLENBQVMsWUFBWSxFQUFFLElBQUksU0FBUyxFQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxjQUFjLENBQVMsZUFBZSxFQUFFLElBQUksU0FBUyxFQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxjQUFjLENBQVMsYUFBYSxFQUFFLElBQUksU0FBUyxFQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxjQUFjLENBQU8sWUFBWSxFQUFFLElBQUksU0FBUyxFQUFRLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUNuRCxPQUFxQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUN0QixHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNWO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNb2RlbCBmcm9tIFwiLi4vZGIvTW9kZWxcIjtcbmltcG9ydCB7TG9nTGV2ZWwsIExvZ0xldmVsS2V5c30gZnJvbSBcIi4uL0xvZ2dlclwiO1xuaW1wb3J0IFZhbGlkYXRvciBmcm9tIFwiLi4vZGIvVmFsaWRhdG9yXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZyBleHRlbmRzIE1vZGVsIHtcbiAgICBwcml2YXRlIGxldmVsPzogbnVtYmVyO1xuICAgIHB1YmxpYyBtZXNzYWdlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgbG9nX2lkPzogQnVmZmVyO1xuICAgIHByaXZhdGUgZXJyb3JfbmFtZT86IHN0cmluZztcbiAgICBwcml2YXRlIGVycm9yX21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBlcnJvcl9zdGFjaz86IHN0cmluZztcbiAgICBwcml2YXRlIGNyZWF0ZWRfYXQ/OiBEYXRlO1xuXG4gICAgcHJvdGVjdGVkIGRlZmluZVByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVmaW5lUHJvcGVydHk8bnVtYmVyPignbGV2ZWwnLCBuZXcgVmFsaWRhdG9yPG51bWJlcj4oKS5kZWZpbmVkKCkpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PHN0cmluZz4oJ21lc3NhZ2UnLCBuZXcgVmFsaWRhdG9yPHN0cmluZz4oKS5kZWZpbmVkKCkuYmV0d2VlbigwLCA2NTUzNSkpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PEJ1ZmZlcj4oJ2xvZ19pZCcsIG5ldyBWYWxpZGF0b3I8QnVmZmVyPigpLmFjY2VwdFVuZGVmaW5lZCgpLmxlbmd0aCgxNikpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PHN0cmluZz4oJ2Vycm9yX25hbWUnLCBuZXcgVmFsaWRhdG9yPHN0cmluZz4oKS5hY2NlcHRVbmRlZmluZWQoKS5iZXR3ZWVuKDAsIDEyOCkpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PHN0cmluZz4oJ2Vycm9yX21lc3NhZ2UnLCBuZXcgVmFsaWRhdG9yPHN0cmluZz4oKS5hY2NlcHRVbmRlZmluZWQoKS5iZXR3ZWVuKDAsIDUxMikpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PHN0cmluZz4oJ2Vycm9yX3N0YWNrJywgbmV3IFZhbGlkYXRvcjxzdHJpbmc+KCkuYWNjZXB0VW5kZWZpbmVkKCkuYmV0d2VlbigwLCA2NTUzNSkpO1xuICAgICAgICB0aGlzLmRlZmluZVByb3BlcnR5PERhdGU+KCdjcmVhdGVkX2F0JywgbmV3IFZhbGlkYXRvcjxEYXRlPigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGV2ZWwoKTogTG9nTGV2ZWxLZXlzIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxldmVsICE9PSAnbnVtYmVyJykgcmV0dXJuICdFUlJPUic7XG4gICAgICAgIHJldHVybiA8TG9nTGV2ZWxLZXlzPkxvZ0xldmVsW3RoaXMubGV2ZWxdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRMZXZlbChsZXZlbDogTG9nTGV2ZWxLZXlzKSB7XG4gICAgICAgIHRoaXMubGV2ZWwgPSBMb2dMZXZlbFtsZXZlbF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldExvZ0lEKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMubG9nX2lkKSByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgY2hhcnMgPSB0aGlzLmxvZ19pZCEudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBsZXQgb3V0ID0gJyc7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBsIG9mIFs4LCA0LCA0LCA0LCAxMl0pIHtcbiAgICAgICAgICAgIGlmIChpID4gMCkgb3V0ICs9ICctJztcbiAgICAgICAgICAgIG91dCArPSBjaGFycy5zdWJzdHIoaSwgbCk7XG4gICAgICAgICAgICBpICs9IGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TG9nSUQoYnVmZmVyOiBCdWZmZXIpIHtcbiAgICAgICAgdGhpcy5sb2dfaWQgPSBidWZmZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVycm9yTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcl9uYW1lIHx8ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JfbWVzc2FnZSB8fCAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXJyb3JTdGFjaygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcl9zdGFjayB8fCAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RXJyb3IoZXJyb3I/OiBFcnJvcikge1xuICAgICAgICBpZiAoIWVycm9yKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5lcnJvcl9uYW1lID0gZXJyb3IubmFtZTtcbiAgICAgICAgdGhpcy5lcnJvcl9tZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgICAgdGhpcy5lcnJvcl9zdGFjayA9IGVycm9yLnN0YWNrO1xuICAgIH1cbn1cbiJdfQ==