ih-black-lion
Version:
State handler for Arus projects
44 lines (40 loc) • 1.36 kB
JavaScript
import { toArray } from '../boilerplate';
const formatCourse = obj => (
{
desc: obj.courseTitleLong,
status: obj.enrollStatusDescr,
units: obj.untTaken,
gradeDesc: obj.gradeBasisDescrformal,
grade: obj.crseGradeOff,
course: `${obj.subject} ${obj.catalogNbr}`,
title: obj.descr,
descr: obj.courseTitleLong,
subject: obj.subject,
number: obj.catalogNbr,
booklink: `https://www.bkstr.com/webapp/wcs/stores/servlet/booklookServlet?bookstore_id-1=0${obj.crseOfferNbr}&term_id-1=${obj.strm}&crn-1=${obj.crseId}`,
}
);
const formatTerm = obj => (
{
acadCareerDesc: obj.acadCareerLovdescr,
curGpa: obj.curGpa,
cumGpa: obj.cumGpa,
gpa: obj.curGpa,
termName: obj.strmLovdescr,
institution: obj.institutionLovdescr,
termBeginDate: obj.termBeginDt,
termEndDate: obj.termEndDt,
termId: obj.strm,
courses: toArray(obj.enrollmentDetails.enrollmentDetail).map(course => formatCourse(course)),
}
);
export default class CourseHistory {
constructor(obj, mode) {
if (obj.ssrGetEnrollmentResp.ssrEnrlStudylist.ssMessageLong === 'You are not registered for classes in this term.') {
this.terms = [];
} else {
const terms = toArray(obj.ssrGetEnrollmentResp.ssrEnrlStudylist.ssrEnrlTerms.ssrEnrlTerm);
this.terms = terms.map(term => formatTerm(term));
}
}
}