Add new student module with impl of 2 endpoints: cache and diaries

This commit is contained in:
Mikołaj Pich 2018-12-05 01:07:20 +01:00
parent b33f6de106
commit d1773c7703
No known key found for this signature in database
GPG key ID: F62B26E36D4C4BAA
5 changed files with 303 additions and 9 deletions

2
app.js
View file

@ -13,6 +13,7 @@ const api = require('./src/routes/api/index');
const cufs = require('./src/routes/cufs');
const uonetplus = require('./src/routes/uonetplus');
const uonetplusOpiekun = require('./src/routes/uonetplus-opiekun');
const uonetplusUczen = require('./src/routes/uonetplus-uczen');
const uonetplusUzytkownik = require('./src/routes/uonetplus-uzytkownik');
const app = express();
@ -48,6 +49,7 @@ app.use(subdomain('api', api));
app.use(subdomain('cufs', cufs));
app.use(subdomain('uonetplus', uonetplus));
app.use(subdomain('uonetplus-opiekun', uonetplusOpiekun));
app.use(subdomain('uonetplus-uczen', uonetplusUczen.use('/Default/123456', uonetplusUczen)));
app.use(subdomain('uonetplus-uzytkownik', uonetplusUzytkownik));
app.use('/', index);

View file

@ -1,18 +1,18 @@
[
{
"IdOkresKlasyfikacyjny": 2,
"OkresPoziom": 3,
"IdOkresKlasyfikacyjny": 12,
"OkresPoziom": 4,
"OkresNumer": 2,
"OkresDataOd": 1517439600,
"OkresDataDo": 1535666400,
"OkresDataOdTekst": "2018-02-01",
"OkresDataDoTekst": "2018-08-31",
"OkresDataOd": 1535752800,
"OkresDataDo": 1548889200,
"OkresDataOdTekst": "2018-09-01",
"OkresDataDoTekst": "2019-01-31",
"IdJednostkaSprawozdawcza": 6,
"JednostkaSprawozdawczaSkrot": "Fake123456",
"JednostkaSprawozdawczaNazwa": "Fakelog public diary nr 1",
"JednostkaSprawozdawczaSymbol": "123456",
"IdJednostka": 0,
"JednostkaNazwa": "Publiczny dziennik Wulkanowego nr 1 w fakelog.cf",
"JednostkaNazwa": "Publiczny szkoła Wulkanowego nr 1 w fakelog.cf",
"JednostkaSkrot": "Fake123456",
"OddzialSymbol": "A",
"OddzialKod": "1A",

9
package-lock.json generated
View file

@ -97,7 +97,7 @@
},
"array-flatten": {
"version": "1.1.1",
"resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"asap": {
@ -508,6 +508,11 @@
}
}
},
"date-fns": {
"version": "2.0.0-alpha.24",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.0.0-alpha.24.tgz",
"integrity": "sha512-jpLzKHKSq0nTcZ3K5ZnTelxWmUwPepuoEaXkATwIUnc1tc+/rIooAvDMR+zdAGnwQ35eVWiyn5dikoLHjhEYeA=="
},
"date-now": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
@ -795,7 +800,7 @@
},
"finalhandler": {
"version": "1.1.1",
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"requires": {
"debug": "2.6.9",

View file

@ -9,6 +9,7 @@
"dependencies": {
"body-parser": "~1.18.3",
"cookie-parser": "~1.4.3",
"date-fns": "^2.0.0-alpha.24",
"debug": "^4.1.0",
"express": "~4.16.4",
"express-subdomain": "^1.0.5",

View file

@ -0,0 +1,286 @@
const express = require('express');
const router = express.Router();
const protocol = require('../utils/connection');
const {format, fromUnixTime, getYear, addYears, addMonths} = require('date-fns');
router.get("/", (req, res) => {
const base = protocol(req) + "://" + req.get('host') + "/Default/123456";
res.json({
status: "sucess",
data: {
endpoints: [
"/Diety.mvc/Get",
"/EgzaminySemestralne.mvc/Get",
"/EgzaminyZewnetrzne.mvc/Get",
"/EwidencjaObecnosci.mvc/Get",
"/FormularzeSzablony.mvc/Get",
"/FormularzeSzablonyDownload.mvc/Get",
"/FormularzeWysylanie.mvc/Get",
"/FormularzeWysylanie.mvc/Post",
"/Frekwencja.mvc/Get",
"/FrekwencjaStatystyki.mvc/Get",
"/FrekwencjaStatystykiPrzedmioty.mvc/Get",
"/Jadlospis.mvc/Get",
"/LekcjeZrealizowane.mvc/GetPrzedmioty",
"/LekcjeZrealizowane.mvc/GetZrealizowane",
"/Oceny.mvc/Get",
"/OkresyUmowOplat.mvc/Get",
"/Oplaty.mvc/Get",
"/PlanZajec.mvc/Get",
"/Pomoc.mvc/Get",
"/RejestracjaUrzadzeniaToken.mvc/Get",
"/RejestracjaUrzadzeniaToken.mvc/Delete",
"/RejestracjaUrzadzeniaTokenCertyfikat.mvc/Get",
"/Sprawdziany.mvc/Get",
"/Statystyki.mvc/GetOcenyCzastkowe",
"/Statystyki.mvc/GetOcenyRoczne",
"/Statystyki.mvc/GetPunkty",
"/SzkolaINauczyciele.mvc/Get",
"/Uczen.mvc/Get",
"/UczenCache.mvc/Get",
"/UczenDziennik.mvc/Get",
"/Usprawiedliwienia.mvc/Post",
"/UwagiIOsiagniecia.mvc/Get",
"/ZadaniaDomowe.mvc/Get",
"/ZarejestrowaneUrzadzenia.mvc/Get",
"/ZarejestrowaneUrzadzenia.mvc/Delete",
"/ZgloszoneNieobecnosci.mvc/Get",
"/ZgloszoneNieobecnosci.mvc/Post"
].map(item => {
return base + item;
})
}
});
});
router.all("/UczenCache.mvc/Get", (req, res) => {
res.json({
"data": {
"czyOpiekun": false,
"czyJadlospis": false,
"czyOplaty": false,
"poryLekcji": require("../../data/api/dictionaries/PoryLekcji").map(item => {
return {
Id: item.Id,
Numer: item.Numer,
Poczatek: "1900-01-01 " + item.PoczatekTekst + ":00",
Koniec: "1900-01-01 " + item.KoniecTekst + ":00",
DataModyfikacji: "1900-01-01 00:00:00",
IdJednostkaSprawozdawcza: 1,
Nazwa: "" + item.Numer,
OkresDataOd: fromUnixTime(item.OkresDataOd)
};
}),
"pokazLekcjeZrealizowane": true,
"serverDate": format(new Date(), 'yyyy-MM-dd HH:mm:ss')
}, "success": true,
});
});
router.all("/UczenDziennik.mvc/Get", (req, res) => {
res.json({
"data": require('../../data/api/ListaUczniow').reduce((res, current) => {
return res.concat(Array(current.OkresPoziom).fill(current)).map((item, i, array) => {
return {
// jshint ignore:start
...item,
// jshint ignore:end
OkresPoziom: i + 1,
IdOkresKlasyfikacyjny: (i + 1) * 2,
year: getYear(fromUnixTime(item.OkresDataOd)) + i - array.length + 1,
OkresDataOd: addYears(fromUnixTime(item.OkresDataOd), i - array.length + 1),
OkresDataDo: addYears(fromUnixTime(item.OkresDataDo), i - array.length + 1)
};
}).reverse();
}, []).map(item => {
return {
Id: item.OkresPoziom,
IdUczen: item.Id,
UczenImie: item.Imie,
UczenImie2: item.Imie2,
UczenNazwisko: item.Nazwisko,
IsDziennik: true,
IdDziennik: (item.OkresNumer === 1 ? item.IdOkresKlasyfikacyjny : item.IdOkresKlasyfikacyjny - 1) * 2,
IdPrzedszkoleDziennik: 0,
Poziom: item.OkresPoziom,
Symbol: item.OddzialSymbol,
Nazwa: null,
DziennikRokSzkolny: item.year,
Okresy: [
item.OkresNumer === 1 ? item.IdOkresKlasyfikacyjny : item.IdOkresKlasyfikacyjny - 1,
item.OkresNumer === 2 ? item.IdOkresKlasyfikacyjny : item.IdOkresKlasyfikacyjny + 1
].map((semesterId, i) => {
return {
NumerOkresu: i + 1,
Poziom: item.OkresPoziom,
DataOd: format(addMonths(item.OkresDataOd, i * 5), 'yyyy-MM-dd HH:mm:ss'),
DataDo: format(addMonths(item.OkresDataDo, i * 7), 'yyyy-MM-dd HH:mm:ss'),
IdOddzial: item.IdOddzial,
IdJednostkaSprawozdawcza: item.IdJednostkaSprawozdawcza,
IsLastOkres: i === 1,
Id: semesterId
};
}),
"IdSioTyp": 11,
"IsDorosli": false,
"IsPolicealna": false,
"Is13": false,
"IsArtystyczna": false,
"IsArtystyczna13": false,
"IsSpecjalny": false,
"IsPrzedszkola": false,
"UczenPelnaNazwa": `${item.OkresPoziom}${item.OddzialSymbol} ${item.year} - ${item.Imie} ${item.Nazwisko}`
};
}),
"success": true
});
});
router.all("/Home.mvc/RefreshSession", (req, res) => {
res.json({
"data": {},
"success": true
});
});
router.all("/Diety.mvc/Get", (req, res) => {
res.json({});
});
router.all("/EgzaminySemestralne.mvc/Get", (req, res) => {
res.json({});
});
router.all("/EgzaminyZewnetrzne.mvc/Get", (req, res) => {
res.json({});
});
router.all("/EwidencjaObecnosci.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FormularzeSzablony.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FormularzeSzablonyDownload.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FormularzeWysylanie.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FormularzeWysylanie.mvc/Post", (req, res) => {
res.json({});
});
router.all("/Frekwencja.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FrekwencjaStatystyki.mvc/Get", (req, res) => {
res.json({});
});
router.all("/FrekwencjaStatystykiPrzedmioty.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Jadlospis.mvc/Get", (req, res) => {
res.json({});
});
router.all("/LekcjeZrealizowane.mvc/GetPrzedmioty", (req, res) => {
res.json({});
});
router.all("/LekcjeZrealizowane.mvc/GetZrealizowane", (req, res) => {
res.json({});
});
router.all("/Oceny.mvc/Get", (req, res) => {
res.json({});
});
router.all("/OkresyUmowOplat.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Oplaty.mvc/Get", (req, res) => {
res.json({});
});
router.all("/PlanZajec.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Pomoc.mvc/Get", (req, res) => {
res.json({});
});
router.all("/RejestracjaUrzadzeniaToken.mvc/Get", (req, res) => {
res.json({});
});
router.all("/RejestracjaUrzadzeniaToken.mvc/Delete", (req, res) => {
res.json({});
});
router.all("/RejestracjaUrzadzeniaTokenCertyfikat.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Sprawdziany.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Statystyki.mvc/GetOcenyCzastkowe", (req, res) => {
res.json({});
});
router.all("/Statystyki.mvc/GetOcenyRoczne", (req, res) => {
res.json({});
});
router.all("/Statystyki.mvc/GetPunkty", (req, res) => {
res.json({});
});
router.all("/SzkolaINauczyciele.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Uczen.mvc/Get", (req, res) => {
res.json({});
});
router.all("/Usprawiedliwienia.mvc/Post", (req, res) => {
res.json({});
});
router.all("/UwagiIOsiagniecia.mvc/Get", (req, res) => {
res.json({});
});
router.all("/ZadaniaDomowe.mvc/Get", (req, res) => {
res.json({});
});
router.all("/ZarejestrowaneUrzadzenia.mvc/Get", (req, res) => {
res.json({});
});
router.all("/ZarejestrowaneUrzadzenia.mvc/Delete", (req, res) => {
res.json({});
});
router.all("/ZgloszoneNieobecnosci.mvc/Get", (req, res) => {
res.json({});
});
router.all("/ZgloszoneNieobecnosci.mvc/Post", (req, res) => {
res.json({});
});
module.exports = router;