From 917d8127d66ea23f4f76e6a624158cdf23bad724 Mon Sep 17 00:00:00 2001
From: ievavold <ievavold@wisc.edu>
Date: Wed, 20 Feb 2019 13:00:10 -0600
Subject: [PATCH] add search result types

---
 src/app/core/models/search-results.ts              | 14 ++++++++++++++
 .../course-search/course-search.component.ts       |  2 +-
 src/app/degree-planner/services/api.service.ts     |  9 +++++++--
 3 files changed, 22 insertions(+), 3 deletions(-)
 create mode 100644 src/app/core/models/search-results.ts

diff --git a/src/app/core/models/search-results.ts b/src/app/core/models/search-results.ts
new file mode 100644
index 0000000..a0c4694
--- /dev/null
+++ b/src/app/core/models/search-results.ts
@@ -0,0 +1,14 @@
+import { Subject } from '@app/core/models/course-details';
+
+export interface SearchResult {
+  termCode: string;
+  courseId: string;
+  subject: Subject;
+}
+
+export interface SearchResults {
+  found: number;
+  hits: SearchResult[];
+  message: null;
+  success: boolean;
+}
diff --git a/src/app/degree-planner/course-search/course-search.component.ts b/src/app/degree-planner/course-search/course-search.component.ts
index 6db84a0..b221c94 100644
--- a/src/app/degree-planner/course-search/course-search.component.ts
+++ b/src/app/degree-planner/course-search/course-search.component.ts
@@ -205,7 +205,7 @@ export class CourseSearchComponent implements OnInit, OnDestroy {
             ...course,
             subject: course.subject.description,
             subjectCode: course.subject.subjectCode,
-          };
+          } as Course;
         });
       })
       .catch(console.log);
diff --git a/src/app/degree-planner/services/api.service.ts b/src/app/degree-planner/services/api.service.ts
index 2dbf41b..f33cf52 100644
--- a/src/app/degree-planner/services/api.service.ts
+++ b/src/app/degree-planner/services/api.service.ts
@@ -15,6 +15,7 @@ import { Term } from '@app/core/models/term';
 import { CourseBase, SubjectMapping } from '@app/core/models/course';
 import { DegreePlan } from '@app/core/models/degree-plan';
 import { SavedForLaterCourseBase } from '@app/core/models/saved-for-later-course';
+import { SearchResults } from '@app/core/models/search-results';
 
 const HTTP_OPTIONS = {
   headers: new HttpHeaders({
@@ -114,7 +115,7 @@ export class DegreePlannerApiService {
     subjectCode: string;
     searchText?: string;
     termCode?: string;
-  }): Observable<any> {
+  }) {
     const { subjectCode, termCode, searchText } = config;
 
     const payload: any = {
@@ -152,7 +153,11 @@ export class DegreePlannerApiService {
       });
     }
 
-    return this.http.post('/api/search/v1', payload, HTTP_OPTIONS);
+    return this.http.post<SearchResults>(
+      '/api/search/v1',
+      payload,
+      HTTP_OPTIONS,
+    );
   }
 
   public addCourse(
-- 
GitLab