]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/system/logs/logs.service.ts
Refactor log level choice
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / system / logs / logs.service.ts
index 4db79a1fa07382a6de0f1a8aaad1ae70afd90aa7..0c222cad2f12cc11d6191b23b1d681f2642049e5 100644 (file)
@@ -1,30 +1,41 @@
+import { Observable } from 'rxjs'
 import { catchError, map } from 'rxjs/operators'
 import { HttpClient, HttpParams } from '@angular/common/http'
 import { Injectable } from '@angular/core'
-import { Observable } from 'rxjs'
+import { RestExtractor } from '@app/core'
+import { LogLevel } from '@shared/models'
 import { environment } from '../../../../environments/environment'
-import { RestExtractor, RestService } from '../../../shared'
-import { LogRow } from '@app/+admin/system/logs/log-row.model'
-import { LogLevel } from '@shared/models/server/log-level.type'
+import { LogRow } from './log-row.model'
 
 @Injectable()
 export class LogsService {
-  private static BASE_JOB_URL = environment.apiUrl + '/api/v1/server/logs'
+  private static BASE_LOG_URL = environment.apiUrl + '/api/v1/server/logs'
+  private static BASE_AUDIT_LOG_URL = environment.apiUrl + '/api/v1/server/audit-logs'
 
   constructor (
     private authHttp: HttpClient,
-    private restService: RestService,
     private restExtractor: RestExtractor
   ) {}
 
-  getLogs (level: LogLevel, startDate: string, endDate?: string): Observable<any> {
+  getLogs (options: {
+    isAuditLog: boolean
+    startDate: string
+    level?: LogLevel
+    endDate?: string
+  }): Observable<any[]> {
+    const { isAuditLog, startDate } = options
+
     let params = new HttpParams()
     params = params.append('startDate', startDate)
-    params = params.append('level', level)
 
-    if (endDate) params.append('endDate', endDate)
+    if (!isAuditLog) params = params.append('level', options.level)
+    if (options.endDate) params.append('endDate', options.endDate)
+
+    const path = isAuditLog
+      ? LogsService.BASE_AUDIT_LOG_URL
+      : LogsService.BASE_LOG_URL
 
-    return this.authHttp.get<any[]>(LogsService.BASE_JOB_URL, { params })
+    return this.authHttp.get<any[]>(path, { params })
                .pipe(
                  map(rows => rows.map(r => new LogRow(r))),
                  catchError(err => this.restExtractor.handleError(err))