swaf/src/models/Log.ts

61 lines
1.8 KiB
TypeScript

import Model from "../db/Model";
import {LogLevel, LogLevelKeys} from "../Logger";
import {bufferToUuid} from "../Utils";
export default class Log extends Model {
public readonly id?: number = undefined;
private level?: number = undefined;
public message?: string = undefined;
private log_id?: Buffer = undefined;
private error_name?: string = undefined;
private error_message?: string = undefined;
private error_stack?: string = undefined;
private created_at?: Date = undefined;
protected init(): void {
this.setValidation('level').defined();
this.setValidation('message').defined().between(0, 65535);
this.setValidation('log_id').acceptUndefined().length(16);
this.setValidation('error_name').acceptUndefined().between(0, 128);
this.setValidation('error_message').acceptUndefined().between(0, 512);
this.setValidation('error_stack').acceptUndefined().between(0, 65535);
}
public getLevel(): LogLevelKeys {
if (typeof this.level !== 'number') return 'ERROR';
return <LogLevelKeys>LogLevel[this.level];
}
public setLevel(level: LogLevel): void {
this.level = level;
}
public getLogId(): string | null {
return this.log_id ? bufferToUuid(this.log_id) : null;
}
public setLogId(buffer: Buffer): void {
this.log_id = buffer;
}
public getErrorName(): string {
return this.error_name || '';
}
public getErrorMessage(): string {
return this.error_message || '';
}
public getErrorStack(): string {
return this.error_stack || '';
}
public setError(error?: Error): void {
if (!error) return;
this.error_name = error.name;
this.error_message = error.message;
this.error_stack = error.stack;
}
}