mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-10-30 18:22:41 -04:00 
			
		
		
		
	Implementing route params inside the page resolver
This commit is contained in:
		
							parent
							
								
									e8c505cb56
								
							
						
					
					
						commit
						b8d5265316
					
				| @ -6,7 +6,7 @@ import {NotFoundComponent} from './not-found/not-found.component'; | ||||
| import {PlayerComponent} from "./pages/player/player.component"; | ||||
| import {SearchComponent} from "./pages/search/search.component"; | ||||
| import {CollectionResolverService} from "./services/resolvers/collection-resolver.service"; | ||||
| import {PageResolver} from './services/resolvers/library-resolver.service'; | ||||
| import {PageResolver} from './services/resolvers/page-resolver.service'; | ||||
| import {PeopleResolverService} from "./services/resolvers/people-resolver.service"; | ||||
| import {SearchResolverService} from "./services/resolvers/search-resolver.service"; | ||||
| import {ShowResolverService} from './services/resolvers/show-resolver.service'; | ||||
| @ -22,7 +22,12 @@ const routes: Routes = [ | ||||
| 		canLoad: [AuthGuard.forPermissions("read")], | ||||
| 		canActivate: [AuthGuard.forPermissions("read")] | ||||
| 	}, | ||||
| 	{path: "browse/:library-slug", component: LibraryItemGridComponent, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, | ||||
| 	{path: "browse/:slug", component: LibraryItemGridComponent, | ||||
| 		resolve: { items: PageResolver.forResource<LibraryItem>("library/:slug/items") }, | ||||
| 		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")]}, | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| import { HttpClient, HttpErrorResponse } from '@angular/common/http'; | ||||
| import { Injectable } from '@angular/core'; | ||||
| import { MatSnackBar } from '@angular/material/snack-bar'; | ||||
| import { ActivatedRouteSnapshot, Resolve } from '@angular/router'; | ||||
| import { EMPTY, Observable } from 'rxjs'; | ||||
| import {HttpClient, HttpErrorResponse} from '@angular/common/http'; | ||||
| import {Injectable} from '@angular/core'; | ||||
| import {MatSnackBar} from '@angular/material/snack-bar'; | ||||
| import {ActivatedRouteSnapshot, Resolve} from '@angular/router'; | ||||
| import {Observable, EMPTY} from 'rxjs'; | ||||
| import {catchError, map} from 'rxjs/operators'; | ||||
| import {Page} from "../../../models/page"; | ||||
| import {IResource} from "../../../models/resources/resource"; | ||||
| @ -17,11 +17,15 @@ export class PageResolver | ||||
| 		@Injectable() | ||||
| 		class Resolver implements Resolve<Page<T>> | ||||
| 		{ | ||||
| 			constructor(private http: HttpClient, private snackBar: MatSnackBar) { } | ||||
| 			constructor(private http: HttpClient, | ||||
| 			            private snackBar: MatSnackBar) | ||||
| 			{ } | ||||
| 
 | ||||
| 			resolve(route: ActivatedRouteSnapshot): Page<T> | Observable<Page<T>> | Promise<Page<T>> | ||||
| 			{ | ||||
| 				return this.http.get<Page<T>>(`api/${resource}`) | ||||
| 				let res: string = resource.replace(/:(.*?)\//, (x, y) => `${route.paramMap.get(y)}/`); | ||||
| 
 | ||||
| 				return this.http.get<Page<T>>(`api/${res}`) | ||||
| 					.pipe( | ||||
| 						map(x => Object.assign(new Page<T>(), x)), | ||||
| 						catchError((error: HttpErrorResponse) => | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user