UNPKG

trc-client-core

Version:
68 lines (55 loc) 1.52 kB
/** * Mixin for common Course functions * * @exports CourseMixin * */ var CourseMixin = {}; var courseStatusPrettyTable = require('trc-client-core/src/constants/CourseProcess'); var sessionStatusPrettyTable = { NOT_EXIST: 'Session Cancelled', EXIST: 'Session available' }; /** * Checks for course completion then enrollment then elligibliliy * @param {object} course * @return {string} */ function courseStatus (course) { var status = course.eligible ? 'ELIGIBLE' : 'INELIGIBLE'; if(course.completionProcess) { status = course.completionProcess; } else if (course.regProcess) { status = course.regProcess; } return status; } /* Public functions */ /** * Wrapper for courseStatus() * @param {object} course * @param {boolean} pretty * @return {string} */ CourseMixin.getCourseStatus = function(course, pretty) { if (pretty) { if (courseStatusPrettyTable[courseStatus(course)]) { return courseStatusPrettyTable[courseStatus(course)]; } else { return 'STATUS NOT FOUND'; } } return courseStatus(course); }; /** * Wrapper for courseStatusPrettyTable. Allows for flexible status codes. * @param {string} status * @return {string} */ CourseMixin.getPrettyStatus = function (status) { return courseStatusPrettyTable[status]; }; CourseMixin.getPrettySessionStatus = function (status) { return sessionStatusPrettyTable[status]; }; module.exports = CourseMixin;