brewman/overlord/src/app/payment/payment-resolver.service.ts

27 lines
829 B
TypeScript
Raw Normal View History

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 PaymentResolver implements Resolve<Voucher> {
constructor(private ser: VoucherService) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Voucher> {
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');
}
}
}