]>
Commit | Line | Data |
---|---|---|
67ed6552 | 1 | import { LogLevel } from '@shared/models' |
2c22613c C |
2 | import omit from 'lodash-es/omit' |
3 | ||
4 | export class LogRow { | |
5 | date: Date | |
6 | localeDate: string | |
7 | level: LogLevel | |
8 | message: string | |
9 | meta: string | |
10 | ||
566c125d C |
11 | by: string |
12 | domain: string | |
13 | action: string | |
14 | ||
2c22613c C |
15 | constructor (row: any) { |
16 | this.date = new Date(row.timestamp) | |
17 | this.localeDate = this.date.toLocaleString() | |
18 | this.level = row.level | |
19 | this.message = row.message | |
20 | ||
21 | const metaObj = omit(row, 'timestamp', 'level', 'message', 'label') | |
22 | ||
23 | if (Object.keys(metaObj).length !== 0) this.meta = JSON.stringify(metaObj, undefined, 2) | |
566c125d C |
24 | |
25 | if (row.level === 'audit') { | |
26 | try { | |
27 | const message = JSON.parse(row.message) | |
28 | ||
29 | this.by = message.user | |
30 | this.domain = message.domain | |
31 | this.action = message.action | |
32 | ||
33 | this.meta = JSON.stringify(message, null, 2) | |
34 | this.message = '' | |
35 | } catch (err) { | |
36 | console.error('Cannot parse audit message.', err) | |
37 | } | |
38 | } | |
2c22613c C |
39 | } |
40 | } |