444b6b3b4a60af3adfa2a00fd83eb287e7560282
[oweals/peertube.git] / client / src / app / app.component.ts
1 import { Component } from '@angular/core';
2 import { ActivatedRoute, Router, ROUTER_DIRECTIVES } from '@angular/router';
3
4 import { FriendService } from './friends';
5 import {
6   AuthService,
7   AuthStatus,
8   SearchComponent,
9   SearchService
10 } from './shared';
11 import { VideoService } from './videos';
12
13 @Component({
14     selector: 'my-app',
15     template: require('./app.component.html'),
16     styles: [ require('./app.component.scss') ],
17     directives: [ ROUTER_DIRECTIVES, SearchComponent ],
18     providers: [ FriendService, VideoService, SearchService ]
19 })
20
21 export class AppComponent {
22   choices = [];
23   isLoggedIn: boolean;
24
25   constructor(
26     private authService: AuthService,
27     private friendService: FriendService,
28     private route: ActivatedRoute,
29     private router: Router
30   ) {
31     this.isLoggedIn = this.authService.isLoggedIn();
32
33     this.authService.loginChangedSource.subscribe(
34       status => {
35         if (status === AuthStatus.LoggedIn) {
36           this.isLoggedIn = true;
37           console.log('Logged in.');
38         } else if (status === AuthStatus.LoggedOut) {
39           this.isLoggedIn = false;
40           console.log('Logged out.');
41         } else {
42           console.error('Unknown auth status: ' + status);
43         }
44       }
45     );
46   }
47
48   isUserAdmin() {
49     return this.authService.isAdmin();
50   }
51
52   logout() {
53     this.authService.logout();
54     // Redirect to home page
55     this.router.navigate(['/videos/list']);
56   }
57
58   makeFriends() {
59     this.friendService.makeFriends().subscribe(
60       status => {
61         if (status === 409) {
62           alert('Already made friends!');
63         } else {
64           alert('Made friends!');
65         }
66       },
67       error => alert(error)
68     );
69   }
70
71   quitFriends() {
72     this.friendService.quitFriends().subscribe(
73       status => {
74         alert('Quit friends!');
75       },
76       error => alert(error)
77     );
78   }
79 }