Kyoo/src/app/app-routing.module.ts
2020-04-03 02:40:45 +02:00

44 lines
2.7 KiB
TypeScript

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {BrowseComponent} from './browse/browse.component';
import {CollectionComponent} from "./collection/collection.component";
import {NotFoundComponent} from './not-found/not-found.component';
import {PlayerComponent} from "./player/player.component";
import {SearchComponent} from "./search/search.component";
import {CollectionResolverService} from "./services/collection-resolver.service";
import {LibraryResolverService} from './services/library-resolver.service';
import {PeopleResolverService} from "./services/people-resolver.service";
import {SearchResolverService} from "./services/search-resolver.service";
import {ShowResolverService} from './services/show-resolver.service';
import {StreamResolverService} from "./services/stream-resolver.service";
import {ShowDetailsComponent} from './show-details/show-details.component';
import {AuthGuard} from "./auth/misc/authenticated-guard.service";
const routes: Routes = [
{path: "browse", component: BrowseComponent, pathMatch: "full", resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "browse/:library-slug", component: BrowseComponent, resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "show/:show-slug", component: ShowDetailsComponent, resolve: { show: ShowResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "collection/:collection-slug", component: CollectionComponent, resolve: { collection: CollectionResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "people/:people-slug", component: CollectionComponent, resolve: { collection: PeopleResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "watch/:item", component: PlayerComponent, resolve: { item: StreamResolverService }, canLoad: [AuthGuard.forPermissions("play")], canActivate: [AuthGuard.forPermissions("play")]},
{path: "search/:query", component: SearchComponent, resolve: { items: SearchResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]},
{path: "**", component: NotFoundComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes,
{
scrollPositionRestoration: "enabled",
})],
exports: [RouterModule],
providers: [
LibraryResolverService,
ShowResolverService,
CollectionResolverService,
PeopleResolverService,
StreamResolverService,
SearchResolverService
]
})
export class AppRoutingModule { }