/**
* An object representing the final grade in a PowerSchool course.
* @hideconstructor
*/
class PowerSchoolFinalGrade {
constructor(api, id, grade, percentage, date, comment, reportingTermID, courseID) {
this.api = api;
/**
* The ID of this event.
* @member {number}
*/
this.id = id;
/**
* The grade received in this course, to be displayed.
* @member {string}
*/
this.grade = grade;
/**
* The grade received in this course as a percentage (value from 0-1), if can be calculated.
* @member {number}
*/
this.percentage = percentage;
/**
* The date this mark was stored, if available.
* @member {Date}
*/
this.date = date;
/**
* The teacher's comment for this grade, if available.
* @member {string}
*/
this.comment = comment;
/**
* The identifier of the reporting term this grade is from.
* @member {number}
*/
this.reportingTermID = reportingTermID;
/**
* The identifier of the course this grade is from.
* @member {number}
*/
this.courseID = courseID;
}
static fromData(data, api) {
return new PowerSchoolFinalGrade(api, data.id, data.grade, data.percent / 100, data.dateStored ? new Date(data.dateStored) : null, data.commentValue, data.reportingTermId, data.sectionid);
}
/**
* Get the reporting term this grade is from.
* @return {PowerSchoolReportingTerm}
*/
getReportingTerm() {
return this.api._cachedInfo.reportingTerms[this.reportingTermID];
}
/**
* Get the course this grade is from.
* @return {PowerSchoolCourse}
*/
getCourse() {
return this.api._cachedInfo.courses[this.courseID];
}
}
module.exports = PowerSchoolFinalGrade;