]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/core/plugins/hooks.service.ts
Add debug logs to plugin service
[github/Chocobozzz/PeerTube.git] / client / src / app / core / plugins / hooks.service.ts
index a6a444c326a4b3392f1cd651890c07894922b224..ddde198d2ffb0fe2c7ec7ab0fd7023259a6ba36c 100644 (file)
@@ -1,10 +1,9 @@
-import { Injectable } from '@angular/core'
-import { PluginService } from '@app/core/plugins/plugin.service'
-import { ClientActionHookName, ClientFilterHookName } from '@shared/models/plugins/client-hook.model'
 import { from, Observable } from 'rxjs'
 import { mergeMap, switchMap } from 'rxjs/operators'
-import { ServerService } from '@app/core/server'
-import { PluginClientScope } from '@shared/models/plugins/plugin-client-scope.type'
+import { Injectable } from '@angular/core'
+import { PluginService } from '@app/core/plugins/plugin.service'
+import { ClientActionHookName, ClientFilterHookName, PluginClientScope } from '@shared/models'
+import { AuthService, AuthStatus } from '../auth'
 
 type RawFunction<U, T> = (params: U) => T
 type ObservableFunction<U, T> = RawFunction<U, Observable<T>>
@@ -12,9 +11,21 @@ type ObservableFunction<U, T> = RawFunction<U, Observable<T>>
 @Injectable()
 export class HooksService {
   constructor (
-    private server: ServerService,
+    private authService: AuthService,
     private pluginService: PluginService
-  ) { }
+  ) {
+    // Run auth hooks
+    this.authService.userInformationLoaded
+      .subscribe(() => this.runAction('action:auth-user.information-loaded', 'common', { user: this.authService.getUser() }))
+
+    this.authService.loginChangedSource.subscribe(obj => {
+      if (obj === AuthStatus.LoggedIn) {
+        this.runAction('action:auth-user.logged-in', 'common')
+      } else if (obj === AuthStatus.LoggedOut) {
+        this.runAction('action:auth-user.logged-out', 'common')
+      }
+    })
+  }
 
   wrapObsFun
     <P, R, H1 extends ClientFilterHookName, H2 extends ClientFilterHookName>