Skip to content
Snippets Groups Projects
data.service.ts 1.21 KiB
Newer Older
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed
import { identifierModuleUrl } from '@angular/compiler';
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
pnogal's avatar
pnogal committed
import { HttpClient, HttpHeaders } from '@angular/common/http';
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed
import { ConfigService } from './config.service';
pnogal's avatar
pnogal committed
import { Response, ResponseContentType } from '@angular/http';
import { Observable } from 'rxjs';
import { catchError, map, tap } from 'rxjs/operators';
import { throwError } from 'rxjs';
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed

@Injectable()
export class DataService {
	private api: string;
pnogal's avatar
pnogal committed
	private coursesUrl = 'https://dev.enroll.wisc.edu/api/planner/v1/degreePlan/519261/courses';
	private log: any;
pnogal's avatar
pnogal committed
	constructor(private http: HttpClient, private configService: ConfigService) {
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed
		this.api = this.configService.apiUrl;
	}
pnogal's avatar
pnogal committed

	getCourseData() {
		return this.http
			.get(this.coursesUrl)
			// .subscribe(
			// 	data => console.log('data: ', data), // success path
			// 	error => console.log('error: ', error) // error path
			// );
			.pipe(
				map(this.extractData),
				catchError(this.errorHandler)
		);
	}

	private extractData(res: Response) {
		return res.text() ? res.json() : {};
	}

	private errorHandler(error: Response) {
		// console.error(error);
		return throwError(error || 'Server Error');
	}

jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed
}