]>
Commit | Line | Data |
---|---|---|
ff8c5ccf K |
1 | import { Component, OnInit } from '@angular/core' |
2 | import { empty } from 'rxjs' | |
3 | import { catchError } from 'rxjs/operators' | |
4 | import { RestExtractor } from '@app/core' | |
5 | ||
6 | import { ActivatedRoute, Router } from '@angular/router' | |
7 | import { AccountService } from '@app/shared/shared-main/account' | |
8 | ||
9 | @Component({ | |
10 | selector: 'my-actor', | |
11 | template: '' | |
12 | }) | |
13 | export class ActorsComponent implements OnInit { | |
14 | constructor ( | |
15 | private accountService: AccountService, | |
16 | private route: ActivatedRoute, | |
17 | private restExtractor: RestExtractor, | |
18 | private router: Router | |
19 | ) { | |
20 | } | |
21 | ||
22 | ngOnInit () { | |
23 | const accountOrChannelName = this.route.snapshot.params['actorName'].replace('@', '') | |
24 | ||
25 | this.accountService | |
26 | .getAccount(accountOrChannelName) | |
27 | .pipe( | |
28 | catchError(res => { | |
29 | if (res.status === 404 && res.message === 'Account not found') { | |
30 | this.router.navigateByUrl(`/video-channels/${accountOrChannelName}`) | |
31 | return empty() | |
32 | } | |
33 | ||
34 | return this.restExtractor.handleError(res) | |
35 | }) | |
36 | ) | |
37 | .subscribe(() => { | |
38 | this.router.navigateByUrl(`/accounts/${accountOrChannelName}`) | |
39 | }) | |
40 | } | |
41 | } |