Newer
Older
import { Injectable } from '@angular/core';
import { HttpResponse } from '@angular/common/http';
import { Resolve, ActivatedRouteSnapshot, Routes, Router } from '@angular/router';
import { Observable, of, EMPTY } from 'rxjs';
import { flatMap } from 'rxjs/operators';
import { Authority } from 'app/shared/constants/authority.constants';
import { UserRouteAccessService } from 'app/core/auth/user-route-access-service';
import { IUserWatchList, UserWatchList } from 'app/shared/model/user-watch-list.model';
import { UserWatchListService } from 'app/entities/user-watch-list/user-watch-list.service';
import { BookmarkComponent } from './bookmarks.component';
import { UserWatchListUpdateComponent } from './bookmarks-update.component';
@Injectable({ providedIn: 'root' })
export class BookmarksResolve implements Resolve<IUserWatchList> {
constructor(private service: UserWatchListService, private router: Router) {}
// TODO: Wann wird diese Methode aufgerufen?
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
resolve(route: ActivatedRouteSnapshot): Observable<IUserWatchList> | Observable<never> {
const id = route.params['id'];
if (id) {
return this.service.find(id).pipe(
flatMap((userWatchList: HttpResponse<UserWatchList>) => {
if (userWatchList.body) {
return of(userWatchList.body);
} else {
this.router.navigate(['404']);
return EMPTY;
}
})
);
}
return of(new UserWatchList());
}
}
export const bookmarksRoute: Routes = [
{
path: '',
component: BookmarkComponent,
data: {
authorities: [Authority.USER],
pageTitle: 'global.menu.bookmarks',
},
canActivate: [UserRouteAccessService],
},
{
path: 'new',
component: UserWatchListUpdateComponent,
resolve: {
userWatchList: BookmarksResolve,
},
data: {
authorities: [Authority.USER],
pageTitle: 'gitsearchApp.userWatchList.home.title',
},
canActivate: [UserRouteAccessService],
},
{
path: ':id/edit',
component: UserWatchListUpdateComponent,
resolve: {
userWatchList: BookmarksResolve,
},
data: {
authorities: [Authority.USER],
pageTitle: 'gitsearchApp.userWatchList.home.title',
},
canActivate: [UserRouteAccessService],
},
];