/**
* Represents private information for a school on SMHW.
*/
class SchoolPrivateInformation {
/**
* Instantiate a SchoolPrivateInformation object.
* @param {Client} client The client that is instantiating the object.
* @param {Object} response The data for the object.
*/
constructor(client, response) {
/**
* The client that instantiated this object.
* @type {Client}
* @private
*/
this._client = client;
/**
* Whether or not the school has announcements enabled.
* @type {Boolean}
*/
this.announcements_enabled = response.announcements_enabled;
/**
* An array of IDs for school badges.
* @type {Array<Number>}
*/
this.badge_ids = response.badge_ids;
/**
* The current academic year ID for the school.
* @type {Number}
*/
this.current_academic_year_id = response.current_academic_year_id;
/**
* The timestamp of when the school['s trial] expires.
* @type {Number}
*/
this.expires_on = new Date(response.expires_on).getTime();
/**
* Whether certain features are enabled or disabled for the school.
* @type {Object}
*/
this.features = {
/**
* Whether or not the school has the assessment app feature enabled.
* @type {Boolean}
*/
assessment_app_enabled: response.features.assessment_app_enabled,
/**
* Whether or not the school has the assessments for teachers feature enabled.
* @type {Boolean}
*/
assessment_enabled_for_teachers: response.features.assessment_enabled_for_teachers,
/**
* Whether or not the school has the detentions app feature enabled.
* @type {Boolean}
*/
detentions_enabled: response.features.detentions_enabled,
/**
* @type {Boolean}
*/
sso_enabled_for_employees: response.features.sso_enabled_for_employees,
/**
* @type {Boolean}
*/
sso_enabled_for_students: response.features.sso_enabled_for_students,
/**
* @type {Boolean}
*/
timetable_promo_disabled: response.features.timetable_promo_disabled,
/**
* @type {Boolean}
*/
xod_enabled: response.features.xod_enabled,
/**
* @type {Boolean}
*/
xod_scope_enabled_photos: response.features.xod_scope_enabled_photos,
/**
* @type {Boolean}
*/
xod_scope_enabled_students: response.features.xod_scope_enabled_students
};
/**
* Whether or not the school has shared files in home page zones.
* @type {Boolean}
*/
this.has_shared_files_in_zones = response.has_shared_files_in_zones;
/**
* The ID of the school.
* @type {Number}
*/
this.id = response.id;
/**
* The ID of the school's kudos settings.
* @type {Number}
*/
this.kudos_settings_id = response.kudos_settings_id;
/**
* Links to school API resources.
* @type {Object}
*/
this.links = {
/**
* A link to marking schemes that the school uses.
* @type {String}
*/
marking_schemes: response.links.marking_schemes
};
/**
* Whether or not the school has live chat enabled.
* @type {Boolean}
*/
this.livechat_enabled = response.livechat_enabled;
/**
* The locale code of the school.
* @type {String}
*/
this.locale = response.locale;
/**
* Whether or not the school has online classes enabled.
* @type {Boolean}
*/
this.online_classes_enabled = response.online_classes_enabled;
/**
* Whether or not the school has student signup enabled.
* @type {Boolean}
*/
this.student_signup_enabled = response.student_signup_enabled;
/**
* Whether or not the school has teacher signup enabled.
* @type {Boolean}
*/
this.teacher_signup_enabled = response.teacher_signup_enabled;
/**
* The total amount of storage used by the school.
* @type {Number}
*/
this.total_storage_used = response.total_storage_used;
/**
* Whether or not the school is using a trial of SMHW.
* @type {Boolean}
*/
this.trial = response.trial;
}
}
module.exports = SchoolPrivateInformation;