UNPKG

jsjiit

Version:

Browser-compatible API for interacting with JIIT (Jaypee Institute of Information Technology) WebPortal. Bypasses CAPTCHA :)

76 lines (70 loc) 2.24 kB
/** * @module Attendance */ export class AttendanceHeader { /** * Class which contains header info in the Attendance API * @param {string} branchdesc - Description of the branch * @param {string} name - Name of the student or entity * @param {string} programdesc - Description of the program * @param {string} stynumber - Style number or identifier */ constructor(branchdesc, name, programdesc, stynumber) { this.branchdesc = branchdesc; this.name = name; this.programdesc = programdesc; this.stynumber = stynumber; } /** * Static method to create an AttendanceHeader from a JSON object * @param {object} resp - JSON object representing AttendanceHeader * @returns {AttendanceHeader} A new AttendanceHeader instance */ static from_json(resp) { return new AttendanceHeader(resp.branchdesc, resp.name, resp.programdesc, resp.stynumber); } } export class Semester { /** * Class which contains Semester info * @param {string} registration_code - Registration code of the semester * @param {string} registration_id - Registration ID of the semester */ constructor(registration_code, registration_id) { this.registration_code = registration_code; this.registration_id = registration_id; } /** * Static method to create a Semester from a JSON object * @param {object} resp - JSON object representing Semester * @returns {Semester} A new Semester instance */ static from_json(resp) { return new Semester(resp.registrationcode, resp.registrationid); } } export class AttendanceMeta { /** * Class which contains metadata for Attendance * @param {object} resp - JSON response object with headers and semesters */ constructor(resp) { this.raw_response = resp; this.headers = resp.headerlist.map(AttendanceHeader.from_json); this.semesters = resp.semlist.map(Semester.from_json); } /** * Returns the latest AttendanceHeader * @returns {AttendanceHeader} The first header in the list */ latest_header() { return this.headers[0]; } /** * Returns the latest Semester * @returns {Semester} The first semester in the list */ latest_semester() { return this.semesters[0]; } }