All files / models CourseHistory.js

20% Statements 2/10
0% Branches 0/2
0% Functions 0/5
22.22% Lines 2/9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44    19x                               19x                                                  
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));
    }
  }
}