]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+admin/system/logs/log-row.model.ts
Add ability for client to create server logs
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / system / logs / log-row.model.ts
CommitLineData
2c22613c 1import omit from 'lodash-es/omit'
42b40636
C
2import { logger } from '@root-helpers/logger'
3import { ServerLogLevel } from '@shared/models'
2c22613c
C
4
5export class LogRow {
6 date: Date
7 localeDate: string
42b40636 8 level: ServerLogLevel
2c22613c
C
9 message: string
10 meta: string
11
566c125d
C
12 by: string
13 domain: string
14 action: string
15
2c22613c
C
16 constructor (row: any) {
17 this.date = new Date(row.timestamp)
18 this.localeDate = this.date.toLocaleString()
19 this.level = row.level
20 this.message = row.message
21
22 const metaObj = omit(row, 'timestamp', 'level', 'message', 'label')
23
24 if (Object.keys(metaObj).length !== 0) this.meta = JSON.stringify(metaObj, undefined, 2)
566c125d
C
25
26 if (row.level === 'audit') {
27 try {
28 const message = JSON.parse(row.message)
29
30 this.by = message.user
31 this.domain = message.domain
32 this.action = message.action
33
34 this.meta = JSON.stringify(message, null, 2)
35 this.message = ''
36 } catch (err) {
42b40636 37 logger.error('Cannot parse audit message.', err)
566c125d
C
38 }
39 }
2c22613c
C
40 }
41}