]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/audit-logger.ts
Fix s3 mock cleanup
[github/Chocobozzz/PeerTube.git] / server / helpers / audit-logger.ts
index 954b0b69da8a3abe9666c3484c562d8712d38092..7e8a03e8fc4b974d35feec3c4adf17c0649dd537 100644 (file)
@@ -1,13 +1,11 @@
 import { diff } from 'deep-object-diff'
-import * as express from 'express'
-import * as flatten from 'flat'
+import express from 'express'
+import flatten from 'flat'
 import { chain } from 'lodash'
-import * as path from 'path'
-import * as winston from 'winston'
+import { join } from 'path'
+import { addColors, config, createLogger, format, transports } from 'winston'
 import { AUDIT_LOG_FILENAME } from '@server/initializers/constants'
-import { Abuse, User, VideoChannel, VideoDetails, VideoImport } from '../../shared'
-import { CustomConfig } from '../../shared/models/server/custom-config.model'
-import { VideoComment } from '../../shared/models/videos/video-comment.model'
+import { AdminAbuse, CustomConfig, User, VideoChannel, VideoChannelSync, VideoComment, VideoDetails, VideoImport } from '@shared/models'
 import { CONFIG } from '../initializers/config'
 import { jsonLoggerFormat, labelFormatter } from './logger'
 
@@ -21,23 +19,23 @@ enum AUDIT_TYPE {
   DELETE = 'delete'
 }
 
-const colors = winston.config.npm.colors
-colors.audit = winston.config.npm.colors.info
+const colors = config.npm.colors
+colors.audit = config.npm.colors.info
 
-winston.addColors(colors)
+addColors(colors)
 
-const auditLogger = winston.createLogger({
+const auditLogger = createLogger({
   levels: { audit: 0 },
   transports: [
-    new winston.transports.File({
-      filename: path.join(CONFIG.STORAGE.LOG_DIR, AUDIT_LOG_FILENAME),
+    new transports.File({
+      filename: join(CONFIG.STORAGE.LOG_DIR, AUDIT_LOG_FILENAME),
       level: 'audit',
       maxsize: 5242880,
       maxFiles: 5,
-      format: winston.format.combine(
-        winston.format.timestamp(),
+      format: format.combine(
+        format.timestamp(),
         labelFormatter(),
-        winston.format.splat(),
+        format.splat(),
         jsonLoggerFormat
       )
     })
@@ -84,9 +82,9 @@ abstract class EntityAuditView {
   constructor (private readonly keysToKeep: string[], private readonly prefix: string, private readonly entityInfos: object) { }
 
   toLogKeys (): object {
-    return chain(flatten(this.entityInfos, { delimiter: '-', safe: true }))
+    return chain(flatten<object, any>(this.entityInfos, { delimiter: '-', safe: true }))
       .pick(this.keysToKeep)
-      .mapKeys((value, key) => `${this.prefix}-${key}`)
+      .mapKeys((_value, key) => `${this.prefix}-${key}`)
       .value()
   }
 }
@@ -122,7 +120,7 @@ const videoKeysToKeep = [
   'downloadEnabled'
 ]
 class VideoAuditView extends EntityAuditView {
-  constructor (private readonly video: VideoDetails) {
+  constructor (video: VideoDetails) {
     super(videoKeysToKeep, 'video', video)
   }
 }
@@ -133,7 +131,7 @@ const videoImportKeysToKeep = [
   'video-name'
 ]
 class VideoImportAuditView extends EntityAuditView {
-  constructor (private readonly videoImport: VideoImport) {
+  constructor (videoImport: VideoImport) {
     super(videoImportKeysToKeep, 'video-import', videoImport)
   }
 }
@@ -152,7 +150,7 @@ const commentKeysToKeep = [
   'account-name'
 ]
 class CommentAuditView extends EntityAuditView {
-  constructor (private readonly comment: VideoComment) {
+  constructor (comment: VideoComment) {
     super(commentKeysToKeep, 'comment', comment)
   }
 }
@@ -181,7 +179,7 @@ const userKeysToKeep = [
   'videoChannels'
 ]
 class UserAuditView extends EntityAuditView {
-  constructor (private readonly user: User) {
+  constructor (user: User) {
     super(userKeysToKeep, 'user', user)
   }
 }
@@ -207,7 +205,7 @@ const channelKeysToKeep = [
   'ownerAccount-displayedName'
 ]
 class VideoChannelAuditView extends EntityAuditView {
-  constructor (private readonly channel: VideoChannel) {
+  constructor (channel: VideoChannel) {
     super(channelKeysToKeep, 'channel', channel)
   }
 }
@@ -219,7 +217,7 @@ const abuseKeysToKeep = [
   'createdAt'
 ]
 class AbuseAuditView extends EntityAuditView {
-  constructor (private readonly abuse: Abuse) {
+  constructor (abuse: AdminAbuse) {
     super(abuseKeysToKeep, 'abuse', abuse)
   }
 }
@@ -262,6 +260,18 @@ class CustomConfigAuditView extends EntityAuditView {
   }
 }
 
+const channelSyncKeysToKeep = [
+  'id',
+  'externalChannelUrl',
+  'channel-id',
+  'channel-name'
+]
+class VideoChannelSyncAuditView extends EntityAuditView {
+  constructor (channelSync: VideoChannelSync) {
+    super(channelSyncKeysToKeep, 'channelSync', channelSync)
+  }
+}
+
 export {
   getAuditIdFromRes,
 
@@ -272,5 +282,6 @@ export {
   UserAuditView,
   VideoAuditView,
   AbuseAuditView,
-  CustomConfigAuditView
+  CustomConfigAuditView,
+  VideoChannelSyncAuditView
 }