From 5ca3c9e9b1bf37c3ec270beaa2ad35b342532028 Mon Sep 17 00:00:00 2001
From: ievavold <ievavold@wisc.edu>
Date: Tue, 11 Jun 2019 15:58:08 -0500
Subject: [PATCH] load degree plans into dars view

---
 src/app/core/models/degree-plan.ts | 8 ++++----
 src/app/dars/store/effects.ts      | 4 +++-
 src/app/dars/store/selectors.ts    | 5 +++++
 src/app/dars/store/state.ts        | 3 +++
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/app/core/models/degree-plan.ts b/src/app/core/models/degree-plan.ts
index 0238487..830d700 100644
--- a/src/app/core/models/degree-plan.ts
+++ b/src/app/core/models/degree-plan.ts
@@ -1,6 +1,6 @@
 export interface DegreePlan {
-	roadmapId: number;
-	pvi: string;
-	name: string;
-	primary: boolean;
+  roadmapId: number;
+  pvi: string;
+  name: string;
+  primary: boolean;
 }
diff --git a/src/app/dars/store/effects.ts b/src/app/dars/store/effects.ts
index 6e19407..1feb061 100644
--- a/src/app/dars/store/effects.ts
+++ b/src/app/dars/store/effects.ts
@@ -36,13 +36,14 @@ export class DARSEffects {
 
     flatMap(() => {
       return forkJoinWithKeys({
+        degreePlans: this.degreeAPI.getAllDegreePlans(),
         degreePrograms: this.api.getStudentDegreePrograms(),
         metadata: this.api.getAudits(),
         userPreferences: this.degreeAPI.getUserPreferences(),
       });
     }),
 
-    map(({ degreePrograms, metadata, userPreferences }) => {
+    map(({ degreePlans, degreePrograms, metadata, userPreferences }) => {
       const alerts: Alert[] = [];
       if (userPreferences.darsHasDismissedDisclaimer !== true) {
         alerts.push(
@@ -68,6 +69,7 @@ export class DARSEffects {
       });
 
       return new darsActions.PopulateDarsState({
+        degreePlans,
         metadata: {
           status: 'Loaded',
           programMetadata,
diff --git a/src/app/dars/store/selectors.ts b/src/app/dars/store/selectors.ts
index 37792d1..c8c3d7b 100644
--- a/src/app/dars/store/selectors.ts
+++ b/src/app/dars/store/selectors.ts
@@ -11,6 +11,11 @@ export const alerts = createSelector(
   (state: DARSState) => state.alerts,
 );
 
+export const degreePlans = createSelector(
+  getDARSState,
+  (state: DARSState) => state.degreePlans,
+);
+
 export const metadataStatus = createSelector(
   getDARSState,
   (state: DARSState) => state.metadata.status,
diff --git a/src/app/dars/store/state.ts b/src/app/dars/store/state.ts
index d46c390..8adfeb8 100644
--- a/src/app/dars/store/state.ts
+++ b/src/app/dars/store/state.ts
@@ -1,8 +1,10 @@
 import { Alert } from './../../core/models/alert';
 import { AuditMetadata } from '../models/audit-metadata';
 import { Audit } from '../models/audit';
+import { DegreePlan } from '@app/core/models/degree-plan';
 
 export interface DARSState {
+  degreePlans: DegreePlan[];
   metadata:
     | { status: 'Error'; message: string }
     | { status: 'Loading' }
@@ -20,6 +22,7 @@ export interface DARSState {
 }
 
 export const INITIAL_DARS_STATE: DARSState = {
+  degreePlans: [],
   metadata: { status: 'Loading' },
   visibleAudit: { status: 'NotLoaded' },
   alerts: [],
-- 
GitLab