import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable, of } from 'rxjs'; import { DegreeProgram } from '../models/degree-program'; import { AuditMetadata } from '../models/audit-metadata'; import { StudentDegreeProgram } from '../models/student-degree-program'; import { environment } from './../../../environments/environment'; import { Audit } from '../models/audit'; import { map } from 'rxjs/operators'; const auditResponse: any = require('../../../assets/mock-data/audit-response.json'); const HTTP_OPTIONS = { headers: new HttpHeaders({ 'Content-Type': 'applications/json', }), }; @Injectable({ providedIn: 'root' }) export class DarsApiService { constructor(private http: HttpClient) {} /** * Get all degree programs, honors, and institution data. * * All the data for institutions, honors, and degree programs is static. * The backend is going to cache all this data in S3 and create a single * endpoint for us to hit and get all of it! */ public getStaticData(): Observable<DegreeProgram[]> { return new Observable(); } /** * Get a students degree programs. */ public getStudentDegreePrograms(): Observable<StudentDegreeProgram[]> { const url = `${environment.apiDarsUrl}/studentplans`; return this.http.get<StudentDegreeProgram[]>(url, HTTP_OPTIONS); } /** * Get audit metadata for all audits a user has. */ public getAudits(): Observable<AuditMetadata[]> { const url = `${environment.apiDarsUrl}/auditmetadata`; return this.http.get<AuditMetadata[]>(url, HTTP_OPTIONS); } /** * Get a single audit. */ public getAudit(reportId: number): Observable<Audit> { // const url = `${environment.apiDarsUrl}/reports/${reportId}`; // return this.http.get<any>(url, HTTP_OPTIONS); return of(auditResponse); } /** * Request a new audit */ public newAudit(): Observable<AuditMetadata> { const url = `${environment.apiDarsUrl}/single-audit-requests`; return this.http.post<AuditMetadata>(url, HTTP_OPTIONS); } }