trc-client-core
Version:
The core of the TRC Client
68 lines (55 loc) • 1.52 kB
JSX
/**
* 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;