academic records methods
Marks PDF, grade card, SGPA/CGPA. Private helpers __get_program_id and __get_semester_number sit on the same prototype.
Groups#
flowchart TB
subgraph marks
SM[get_semesters_for_marks] --> DM[download_marks]
end
subgraph grades
SG[get_semesters_for_grade_card] --> PID[__get_program_id]
PID --> GC[get_grade_card]
end
subgraph gpa
SN[__get_semester_number] --> SC[get_sgpa_cgpa]
endMarks#
get_semesters_for_marks#
POST /studentcommonsontroller/getsemestercode-exammarks
{ instituteid, studentid: this.session.memberid }
Maps resp.response.semestercode to Semester.
download_marks(semester)#
Does not use __hit. GET:
/studentsexamview/printstudent-exammarks/{instituteid}/{registration_id}/{registration_code}
Commented-out code in the source used to put memberid in the path. 0.0.22 does not.
sequenceDiagram participant WP as WebPortal participant S as session participant API as StudentPortalAPI participant DOM as document WP->>S: get_headers() WP->>API: GET printstudent-exammarks API-->>WP: blob WP->>DOM: object URL plus a.download
Creates marks_{registration_code}.pdf, clicks it, revokes the URL. Throws APIError wrapping the caught error. Needs a real document.
get_headers(localname) is called with an extra argument that the method ignores.
Grade card#
get_semesters_for_grade_card#
POST /studentgradecard/getregistrationList with { instituteid }. Maps resp.response.registrations.
__get_program_id#
POST /studentgradecard/getstudentinfo with { instituteid }. Returns resp.response.programid.
get_grade_card(semester)#
Calls __get_program_id, then POST /studentgradecard/showstudentgradecard:
{
branchid: this.session.branch_id,
instituteid,
programid,
registrationid: semester.registration_id,
}
WebPortalSession never sets branch_id. The field is undefined unless you assign it.
flowchart LR list[get_semesters_for_grade_card] --> sem[Semester] info[__get_program_id] --> pid[programid] sem --> show[showstudentgradecard] pid --> show bid["session.branch_id unset"] --> show
SGPA / CGPA#
__get_semester_number#
POST /studentsgpacgpa/checkIfstudentmasterexist
{
instituteid,
studentid: this.session.memberid,
name: this.session.name,
enrollmentno: this.session.enrollmentno,
}
Returns resp.response.studentlov.currentsemester.
get_sgpa_cgpa#
POST /studentsgpacgpa/getallsemesterdata
{
instituteid,
studentid: this.session.memberid,
stynumber: await this.__get_semester_number(),
}
Returns resp.response.
sequenceDiagram participant App participant WP as WebPortal participant API as StudentPortalAPI App->>WP: get_sgpa_cgpa WP->>API: checkIfstudentmasterexist WP->>API: getallsemesterdata API-->>App: response
All of these except the inner fetch of download_marks encrypt payloads. The five public names plus both helpers are in authenticatedMethods.