uiss-client v1.2.0
uiss-client
Описание
uiss-client е node.js клиент за УИСС на Технически университет - София, позволяващ автоматизиране на проверката на оценки и получаване на информация за студент.
Инсталиране
npm install uiss-clientПримери
const UissClient = require('uiss-client');
const egn = '94xxxxyyyy';
const facultyId = 'xxxx13yyy';UissClient
    .login(egn, facultyId)
    .then(session => {
        return session.getStudent()
            .then(student => console.log(student))
            .then(() => session.logout());
    })
    .catch(err => console.error(err));
    const moment = require("moment");
UissClient
    .login(egn, facultyId)
    .then(session => {
        return session.getGrades()
            .then(grades => {
                // Филтрира само оценките, внесени на и след 30.06.2016
                const latest = grades.filter(
                    g => g.lastUpdate && g.lastUpdate.isSameOrAfter(moment("30.06.2016", "DD.MM.YYYY"))
                );
                
                console.log(latest);
            })
            .then(() => session.logout())
            .catch(err => console.error(err));
    });Документация на UissClient
static Promise\<UissClient> login(egn, facultyId)
Създава нова сесия в УИСС като се логва с подадените ЕГН (egn) и факултетен номер (facultyId). Връща Promise<UissClient> с инстанция на UissClient за текущата сесия.
Вижте документацията на Promise в MDN и примерите по-горе за това как се използва
Promise.
Promise\<Student> getStudent()
Извлича информацията за студента от текущата сесия. Връща Promise<Student>. Обектът Student е с подобна на тази структура:
Student {
  _name: 'XXXXXXXXXXXXXX',
  _facultyId: 'XXXXXXXX',
  _facultyName: 'XXXXXXXXXXXXXXXXXXXXX',
  _major: 'XXXXXXXXXXXXXX',
  _degreeType: 'Редовно',
  _email: 'XXXXXX@gmail.com',
  _status: '$12Действащ',
  _semester: 6,
  _completedSemester: 6,
  _stream: N,
  _group: NN }Promise\<Grade[]> getGrades()
Извлича оценките на студента. Връща Promise<Grade[]> с масив от Grade. Обектът Grade е с подобна на тази структура:
 Grade {
    _gradeId: 44,
    _name: 'ПРОГРАМНИ СРЕДИ',
    _semesterId: 6,
    _controlForm: 'Изпит',
    _gradeText: 'мн.добър',
    _gradeNumeric: 5,
    _lastUpdate:
     { ... }Полето lastUpdate е от тип Moment.
Вижте документацията на Moment.js и примерите по-горе за това как се използва
Moment.
Promise\<Cert[]> getCerts()
Извлича заверките на студента. Връща Promise<Cert[]> с масив от Cert. Обектът Cert има подобна на следната 
структура:
Cert {
  _signatures: 
   { lectures: EmptySignature { _signeeName: 'Незаверен', _date: moment.invalid(/* NaN */) },
     seminars: undefined,
     labs: 
      Signature {
        _signeeName: 'гл. ас. д-р ТАШЕВА',
        _date: moment("2017-01-11T00:00:00.000") },
     practice: undefined,
     project: undefined },
  _certId: 55,
  _subjectName: 'ПРОГРАМИРАНЕ ЗА РАЗПРЕДЕЛЕНИ СРЕДИ',
  _semesterId: 7 }Promise logout()
Прекратява текущата сесия.
Лиценз
uiss-client е свободен софтуер и се разпространява под лиценза MIT.