import {Injectable} from '@angular/core'; import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router'; import {Observable} from 'rxjs/internal/Observable'; import {Voucher} from '../journal/voucher'; import {VoucherService} from '../journal/voucher.service'; @Injectable({ providedIn: 'root' }) export class PaymentResolver implements Resolve { constructor(private ser: VoucherService) { } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { const id = route.paramMap.get('id'); const account = route.queryParamMap.get('a') || null; if (id !== null) { return this.ser.get(id); } else if (account !== null) { return this.ser.getOfType('Payment', account); } else { return this.ser.getOfType('Payment'); } } }