import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; import { Observable } from 'rxjs/internal/Observable'; import { Voucher } from '../core/voucher'; import { VoucherService } from '../core/voucher.service'; @Injectable({ providedIn: 'root', }) export class ReceiptResolver 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, 'Receipt'); } else if (account !== null) { return this.ser.getOfType('Receipt', account); } else { return this.ser.getOfType('Receipt'); } } }