/bakalari.js

Jednoduchá knihovna pro API bakalářů

Primary LanguageJavaScriptMIT LicenseMIT

bakalari.js

Jednoduchá knihovna pro API bakalářů.

Instalace

Pokud máte npm, můžete jednoduše nainstalovat: npm install bakalari-js --save NPM je momentálně nutnost, jelikož API vyžaduje 2 knihovny (got na requesty a fast-xml-parser na parsovaní XML)

Bez instalace

Pokud nemáte NPM či používáte zcela jiný jazyk, je k dispozici JSON API. Upozorňuji však, že posílání požadavků na API momentálně není bezpečné, jelikož nemám nastavený SSL certifikát a heslo se posílá v rámci URL. Toto však bude v nejbližší době opraveno. http://api.danbulant.eu/v1/bakalari/<modul>/<jmeno>/<domena>/<heslo> kde se proměnné <> nahradí hodnotama.

Pro seznam dostupných modulů běžte na neoficiální dokumentaci zde.

Příklad

Jednoduchý příklad na získání rozvrhu pro tento týden:

const Api = require("bakalari-js");
var bak = new Api;

const settings = {
  domain: "domena.tld",
  name: "jmeno",
  password: "heslo"
}
bak.setDomain(settings.domain);
bak.setName(settings.name);
bak.setPassword(settings.password);
bak.genSalt().then(async (salt) => {
    if (!salt) {
        console.error("Neexistující uživatel");
        return;
    }
    bak.genToken();

    var resp = await bak.request(req.params.info);
    var info = resp.results;
    console.log(info);
}).catch(e => {
    console.log("Špatná doména či uživatel");
});

Dokumentace

Class API

Hlavní třída která se též exportuje.

Constructor() => class Api

Momentálně nebere žádné parametry, ale plánuje se možnost objektu s nastavením.

setDomain(domain) => undefined

Nastaví doménu na domain.

setName(name) => undefined

Nastaví jméno uživatele na name.

setPassword(password) => undefined

Nastaví heslo uživatele na password.

genSalt() => promise(salt)

Vygeneruje potřebnou sůl k získání tokenu. Pro správnou funkci je třeba mít nastavené předchozí hodnoty (doména, jméno a heslo). Sůl je dostupná až po vyřešení promise. V promise se vrací sůl, avšak ji nemusíte nijak uchovávat - třida si ji uloží jako property, je tedy určena především na kontrolu zda se sůl podařilo vygenerovat.

genToken() => undefined

Vygeneruje token pro dnešní den (musí se generovat každý den). Je třeba mít sůl pro vygenerování tokenu. Token je třeba pro requesty.

request(module) => promise(data)

Získá data z modulu. Je třeba mít nastavený token. Seznam modulů dostupný zde.

Ne všechny funkce třídy jsou dokumentované, avšak dané funkce jsou pouze pro interní použití.

Podpoření

Můžete mne podpořit na patreonu.