Skip to content
Snippets Groups Projects
degree-planner.resolver.ts 790 B
Newer Older
import { Injectable } from '@angular/core';
import { Resolve } from '@angular/router';
import { Observable, forkJoin } from 'rxjs';
import { map } from 'rxjs/operators';

import { DataService } from './../core/data.service';

@Injectable({
	providedIn: 'root'
})
export class DegreePlannerResolver implements Resolve<Observable<string>> {
	constructor(private dataService: DataService) { }

	resolve(): Observable<any> {
		return forkJoin(
			this.dataService.getSubjectsMap(),
			this.dataService.getTerms(),
			this.dataService.getFavoriteCourses(),
			this.dataService.getDegreePlans()
		).pipe(
			map((allResponses) => {
				return {
					subjects: allResponses[0],
					terms: allResponses[1],
					favorites: allResponses[2],
					degreePlans: allResponses[3]