2.0.1 • Published 6 years ago

idziennik-api v2.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

API for idziennik (iuczniowie.progman.pl/idziennik)

This is a low level NodeJS API for idziennik (iuczniowie.progman.pl/idziennik) built on top of unirest library. It features Promise-based API and formats idziennik responses to more robust format.

Install

npm install idziennik-api

Build

You can build this module if you want to use the bleeding edge version. Although it may be unstable or have bugs it allows you to use newest features before official release. You need to have NodeJS installed in order to build the module.

  • Clone the git repository
git clone https://github.com/legion44/idziennik-api
  • Install required modules and build idziennik-api
npm install
npm run build

License

MIT

THE SOFTWARE AND SOFTWARE AUTHOR ARE IN NO WAY AFFILIATED WITH, AUTHORIZED, MAINTAINED, SPONSORED OR ENDORSED BY THE WOLTERS KLUWER POLSKA SA OR ANY OF ITS AFFILIATES OR SUBSIDIARIES. THIS IS AN INDEPENDENT SOFTWARE.

Example usage

const idziennik = require('idziennik-api');
const readline = require('readline');
const fs = require('fs');

// read credentials from file and parse it to JSON
const credentials = JSON.parse(fs.readFileSync('./credentials.json'));

// these variables will be used to store session data
var session = {};
var aspxAuth = {};

idziennik.openSession()
.then(function(openSessionResponse)
{
    // assign session info to variables
    session.sessionId = openSessionResponse.sessionId; 
    session.aspxAuth = openSessionResponse.aspxAuth;

    // after opening session we can fetch captcha image, it will be Base64 encoded
    return idziennik.fetchCaptcha({ sessionId: session.sessionId });
})
.then(function(fetchCaptchaResponse)
{
    // ask user to enter captcha
    readline.question(fetchCaptchaResponse.captchaBase64 + ':', function(answer)
    {
        credentials.captcha = answer;

        idziennik.login({ sessionId: session.sessionId, aspxAuth: aspxAuth, credentials: credentials })
        .then(function(loginResponse)
        {
            if(loginResponse.authenticated)
            {
                // if successful, response will contains tokens needed to use rest of the API
                session.bearerToken = loginResponse.bearerToken;
                session.privateToken = loginResponse.privateToken;

                // if login is ok, we return fetch promise
                return idziennik.fetchStudentInfo({ session: session });
            }
            else
            {
                // if login failed, we return promise that is rejected, so code in following then() will not be executed
                return Promise.reject('Invalid credentials!');
            }
        })
        .then(function(studentInfo)
        {
            // should print student info to console
            console.dir(studentInfo);
        })
        .catch(function(reason)
        {
            // will print 'Invalid credentials!' to console
            console.error(reason);
        });
    });
});
2.0.1

6 years ago

2.0.0

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago