From 0bde1a127f966a60b28c2f7f721c1bfcc4626792 Mon Sep 17 00:00:00 2001 From: Marioneq 4958 Date: Sat, 23 Mar 2024 17:20:21 +0100 Subject: [PATCH] =?UTF-8?q?Ucze=C5=84+=20improvements=20(#59)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * A few changes uonetplus-uczenplus: - change student names - add checking customerSymbol - move api endpoints to another file uonetplus-uczen: - add checking customerSymbol uonetplus: - add uonetplus-wiadomosciplus and uonetplus-uczenplus tiles * Add missing semicolons --- app.js | 8 +- data/uonetplus-uczenplus/Context.json | 4 +- src/routes/uonetplus-uczen.js | 16 ++- src/routes/uonetplus-uczenplus.js | 152 ------------------------ src/routes/uonetplus-uczenplus/api.js | 126 ++++++++++++++++++++ src/routes/uonetplus-uczenplus/index.js | 66 ++++++++++ src/routes/uonetplus.js | 20 +++- src/views/homepage.pug | 20 +++- 8 files changed, 246 insertions(+), 166 deletions(-) delete mode 100644 src/routes/uonetplus-uczenplus.js create mode 100644 src/routes/uonetplus-uczenplus/api.js create mode 100644 src/routes/uonetplus-uczenplus/index.js diff --git a/app.js b/app.js index 7842067..9df1291 100644 --- a/app.js +++ b/app.js @@ -14,7 +14,7 @@ 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 uonetplusUczenplus = require('./src/routes/uonetplus-uczenplus'); +const uonetplusUczenplus = require('./src/routes/uonetplus-uczenplus/index'); const uonetplusUzytkownik = require('./src/routes/uonetplus-uzytkownik'); const uonetplusWiadomosciplus = require('./src/routes/uonetplus-wiadomosciplus'); @@ -58,10 +58,8 @@ app.use(subdomain('uonetplus', uonetplus)); app.use(subdomain('uonetplus-opiekun', uonetplusOpiekun.use('/powiatwulkanowy/123456', uonetplusOpiekun))); app.use(subdomain('uonetplus-opiekun', uonetplusOpiekun.use('/powiatwulkanowy/123457', uonetplusOpiekun))); app.use(subdomain('uonetplus-opiekun', uonetplusOpiekun.use('/powiatwulkanowy/123458', uonetplusOpiekun))); -app.use(subdomain('uonetplus-uczen', uonetplusUczen.use('/powiatwulkanowy/123456', uonetplusUczen))); -app.use(subdomain('uonetplus-uczen', uonetplusUczen.use('/powiatwulkanowy/123457', uonetplusUczen))); -app.use(subdomain('uonetplus-uczen', uonetplusUczen.use('/powiatwulkanowy/123458', uonetplusUczen))); -app.use(subdomain("uonetplus-uczenplus", uonetplusUczenplus.use("/powiatwulkanowy/123456", uonetplusUczenplus))); +app.use(subdomain('uonetplus-uczen', uonetplusUczen.use('/powiatwulkanowy/:customerSymbol', uonetplusUczen))); +app.use(subdomain("uonetplus-uczenplus", uonetplusUczenplus.use("/powiatwulkanowy/:customerSymbol", uonetplusUczenplus))); app.use(subdomain('uonetplus-uzytkownik', uonetplusUzytkownik.use('/powiatwulkanowy', uonetplusUzytkownik))); app.use(subdomain('uonetplus-wiadomosciplus', uonetplusWiadomosciplus.use('/powiatwulkanowy', uonetplusWiadomosciplus))); app.use('/', index); diff --git a/data/uonetplus-uczenplus/Context.json b/data/uonetplus-uczenplus/Context.json index 40404e2..069244a 100644 --- a/data/uonetplus-uczenplus/Context.json +++ b/data/uonetplus-uczenplus/Context.json @@ -9,7 +9,7 @@ "isPrzedszkolak": false, "isWychowanek": false, "key": "MS0yLTEtNg==", - "uczen": "Jan Kowalski", + "uczen": "Dariusz Kowalski", "oddzial": "4A", "jednostka": "Szkoła Wulkanowa im. Świętego Wulkanowego", "jednostkaGodzinaOd": null, @@ -54,7 +54,7 @@ "isPrzedszkolak": false, "isWychowanek": false, "key": "Mi0xLTEtNg==", - "uczen": "Joanna Czerwińska", + "uczen": "Monika Czerwińska", "oddzial": "4A", "jednostka": "Szkoła Wulkanowa im. Świętego Wulkanowego", "jednostkaGodzinaOd": null, diff --git a/src/routes/uonetplus-uczen.js b/src/routes/uonetplus-uczen.js index 6c65e46..e7d8afd 100644 --- a/src/routes/uonetplus-uczen.js +++ b/src/routes/uonetplus-uczen.js @@ -1,5 +1,5 @@ const express = require('express'); -const router = express.Router(); +const router = express.Router({ mergeParams: true }); const protocol = require('../utils/connection'); const dictMap = require('../utils/dictMap'); const converter = require('../utils/converter'); @@ -75,10 +75,24 @@ router.get("/", (req, res) => { }); router.get("/LoginEndpoint.aspx", (req, res) => { + if (req.params.customerSymbol === "123456") + res.redirect( + protocol(req) + + "://" + + req.get("host").replace("uczen", "uczenplus") + + `/powiatwulkanowy/${req.params.customerSymbol}/LoginEndpoint.aspx` + ); res.redirect("/Start"); }); router.get("/Start", (req, res) => { + if (req.params.customerSymbol === "123456") + res.redirect( + protocol(req) + + "://" + + req.get("host").replace("uczen", "uczenplus") + + `/powiatwulkanowy/${req.params.customerSymbol}/LoginEndpoint.aspx` + ); res.render("uczen/start"); }); diff --git a/src/routes/uonetplus-uczenplus.js b/src/routes/uonetplus-uczenplus.js deleted file mode 100644 index 62fa936..0000000 --- a/src/routes/uonetplus-uczenplus.js +++ /dev/null @@ -1,152 +0,0 @@ -const { Router } = require("express"); -const protocol = require("../utils/connection"); - -const router = Router(); - -router.get("/", (req, res) => { - const base = protocol(req) + "://" + req.get("host") + "/powiatwulkanowy/123456"; - res.json({ - loginEndpoint: base + "/LoginEndpoint.aspx", - app: base + "/App", - api: [ - base + "/api/Context", - base + "/api/Cache", - base + "/api/OkresyKlasyfikacyjne", - base + "/api/Zebrania", - base + "/api/SprawdzianyZadaniaDomowe", - base + "/api/SprawdzianSzczegoly", - base + "/api/ZadanieDomoweSzczegoly", - base + "/api/Uwagi", - base + "/api/Frekwencja", - base + "/api/Oceny", - base + "/api/Nauczyciele", - base + "/api/Informacje", - base + "/api/NieprzeczytaneWiadomosci", - base + "/api/DostepOffice", - base + "/api/ZarejestrowaneUrzadzenia", - base + "/api/PodrecznikiLataSzkolne", - base + "/api/SzczesliwyNumerTablica", - base + "/api/WazneDzisiajTablica", - base + "/api/WychowawcyTablica", - base + "/api/RealizacjaZajec", - base + "/api/PlanZajec", - base + "/api/DniWolne" - ].sort(), - }); -}); - -router.all("/LoginEndpoint.aspx", (req, res) => { - res.redirect(protocol(req) + "://" + req.get("host") + "/powiatwulkanowy/123456/App"); -}); - -router.all("/App", (_req, res) => { - res.render("uczenplus/app"); -}); - -router.all("/api/Context", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Context.json")); -}); - -router.all("/api/Cache", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Cache.json")); -}); - -router.all("/api/OkresyKlasyfikacyjne", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/OkresyKlasyfikacyjne.json")); -}); - -router.all("/api/Zebrania", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Zebrania.json")); -}); - -router.all("/api/SprawdzianyZadaniaDomowe", (_req, res) => { - res.json( - require("../../data/uonetplus-uczenplus/SprawdzianyZadaniaDomowe.json").map((event) => { - event.data = new Date().toISOString(); - return event; - }) - ); -}); - -router.all("/api/SprawdzianSzczegoly", (_req, res) => { - const data = require("../../data/uonetplus-uczenplus/SprawdzianSzczegoly.json"); - data.data = new Date().toISOString(); - res.json(data); -}); - -router.all("/api/ZadanieDomoweSzczegoly", (_req, res) => { - const data = require("../../data/uonetplus-uczenplus/ZadanieDomoweSzczegoly.json"); - data.data = new Date().toISOString(); - res.json(data); -}); - -router.all("/api/Oceny", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Oceny.json")); -}); - -router.all("/api/Frekwencja", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Frekwencja.json")); -}); - -router.all("/api/Uwagi", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Uwagi.json")); -}); - -router.all("/api/Nauczyciele", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Nauczyciele.json")); -}); - -router.all("/api/Informacje", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/Informacje.json")); -}); - -router.all("/api/WiadomosciNieodczytane", (_req, res) => { - res.json({ liczbaNieodczytanychWiadomosci: 2 }); -}); - -router.all("/api/DostepOffice", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/DostepOffice.json")); -}); - -router.all("/api/ZarejestrowaneUrzadzenia", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/ZarejestrowaneUrzadzenia.json")); -}); - -router.all("/api/PodrecznikiLataSzkolne", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/PodrecznikiLataSzkolne.json")); -}); - -router.all("/api/SzczesliwyNumerTablica", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/SzczesliwyNumerTablica.json")); -}); - -router.all("/api/WazneDzisiajTablica", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/WazneDzisiajTablica.json")); -}); - -router.all("/api/WychowawcyTablica", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/WychowawcyTablica.json")); -}); - -router.all("/api/RealizacjaZajec", (_req, res) => { - res.json( - require("../../data/uonetplus-uczenplus/RealizacjaZajec.json").map((lesson) => { - lesson.data = new Date().toISOString(); - return lesson; - }) - ); -}); - -router.all("/api/PlanZajec", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/PlanZajec.json")); -}); - -router.all("/api/DniWolne", (_req, res) => { - res.json(require("../../data/uonetplus-uczenplus/DniWolne.json")); -}); - -router.all("/api/*", (_req, res) => { - res.status(404).send({ message: "Nie odnaleziono zasobu." }); -}); - -module.exports = router; diff --git a/src/routes/uonetplus-uczenplus/api.js b/src/routes/uonetplus-uczenplus/api.js new file mode 100644 index 0000000..cef6bb9 --- /dev/null +++ b/src/routes/uonetplus-uczenplus/api.js @@ -0,0 +1,126 @@ +const { Router } = require("express"); + +const router = Router(); + +router.use((req, res) => { + if (req.params.customerSymbol !== "123456") + res.status(409).json({ message: "Brak uprawnień." }); +}); + +router.all("/Context", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Context.json")); +}); + +router.all("/Cache", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Cache.json")); +}); + +router.all("/OkresyKlasyfikacyjne", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/OkresyKlasyfikacyjne.json")); +}); + +router.all("/Zebrania", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Zebrania.json")); +}); + +router.all("/SprawdzianyZadaniaDomowe", (_req, res) => { + res.json( + require("../../data/uonetplus-uczenplus/SprawdzianyZadaniaDomowe.json").map( + (event) => { + event.data = new Date().toISOString(); + return event; + } + ) + ); +}); + +router.all("/SprawdzianSzczegoly", (_req, res) => { + const data = require("../../data/uonetplus-uczenplus/SprawdzianSzczegoly.json"); + data.data = new Date().toISOString(); + res.json(data); +}); + +router.all("/ZadanieDomoweSzczegoly", (_req, res) => { + const data = require("../../data/uonetplus-uczenplus/ZadanieDomoweSzczegoly.json"); + data.data = new Date().toISOString(); + res.json(data); +}); + +router.all("/Oceny", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Oceny.json")); +}); + +router.all("/Frekwencja", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Frekwencja.json")); +}); + +router.all("/Uwagi", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Uwagi.json")); +}); + +router.all("/Nauczyciele", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Nauczyciele.json")); +}); + +router.all("/Informacje", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/Informacje.json")); +}); + +router.all("/WiadomosciNieodczytane", (_req, res) => { + res.json({ liczbaNieodczytanychWiadomosci: 2 }); +}); + +router.all("/DostepOffice", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/DostepOffice.json")); +}); + +router.all("/ZarejestrowaneUrzadzenia", (_req, res) => { + res.json( + require("../../data/uonetplus-uczenplus/ZarejestrowaneUrzadzenia.json") + ); +}); + +router.all("/PodrecznikiLataSzkolne", (_req, res) => { + res.json( + require("../../data/uonetplus-uczenplus/PodrecznikiLataSzkolne.json") + ); +}); + +router.all("/SzczesliwyNumerTablica", (_req, res) => { + res.json( + require("../../data/uonetplus-uczenplus/SzczesliwyNumerTablica.json") + ); +}); + +router.all("/WazneDzisiajTablica", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/WazneDzisiajTablica.json")); +}); + +router.all("/WychowawcyTablica", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/WychowawcyTablica.json")); +}); + +router.all("/RealizacjaZajec", (_req, res) => { + res.json( + require("../../data/uonetplus-uczenplus/RealizacjaZajec.json").map( + (lesson) => { + lesson.data = new Date().toISOString(); + return lesson; + } + ) + ); +}); + +router.all("/PlanZajec", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/PlanZajec.json")); +}); + +router.all("/DniWolne", (_req, res) => { + res.json(require("../../data/uonetplus-uczenplus/DniWolne.json")); +}); + +router.all("/*", (_req, res) => { + res.status(404).send({ message: "Nie odnaleziono zasobu." }); +}); + +module.exports = router; diff --git a/src/routes/uonetplus-uczenplus/index.js b/src/routes/uonetplus-uczenplus/index.js new file mode 100644 index 0000000..c1b1d01 --- /dev/null +++ b/src/routes/uonetplus-uczenplus/index.js @@ -0,0 +1,66 @@ +const { Router } = require("express"); +const protocol = require("../../utils/connection"); +const apiRouter = require("./api"); + +const router = Router({ mergeParams: true }); + +router.use("/api", apiRouter); + +router.get("/", (req, res) => { + const base = + protocol(req) + "://" + req.get("host") + "/powiatwulkanowy/123456"; + res.json({ + loginEndpoint: base + "/LoginEndpoint.aspx", + app: base + "/App", + api: [ + base + "/api/Context", + base + "/api/Cache", + base + "/api/OkresyKlasyfikacyjne", + base + "/api/Zebrania", + base + "/api/SprawdzianyZadaniaDomowe", + base + "/api/SprawdzianSzczegoly", + base + "/api/ZadanieDomoweSzczegoly", + base + "/api/Uwagi", + base + "/api/Frekwencja", + base + "/api/Oceny", + base + "/api/Nauczyciele", + base + "/api/Informacje", + base + "/api/NieprzeczytaneWiadomosci", + base + "/api/DostepOffice", + base + "/api/ZarejestrowaneUrzadzenia", + base + "/api/PodrecznikiLataSzkolne", + base + "/api/SzczesliwyNumerTablica", + base + "/api/WazneDzisiajTablica", + base + "/api/WychowawcyTablica", + base + "/api/RealizacjaZajec", + base + "/api/PlanZajec", + base + "/api/DniWolne", + ].sort(), + }); +}); + +router.all("/LoginEndpoint.aspx", (req, res) => { + if (req.params.customerSymbol !== "123456") + res.redirect( + protocol(req) + + "://" + + req.get("host").replace("uczenplus", "uczen") + + `/powiatwulkanowy/${req.params.customerSymbol}/LoginEndpoint.aspx` + ); + res.redirect( + protocol(req) + "://" + req.get("host") + "/powiatwulkanowy/123456/App" + ); +}); + +router.all("/App", (req, res) => { + if (req.params.customerSymbol !== "123456") + res.redirect( + protocol(req) + + "://" + + req.get("host").replace("uczenplus", "uczen") + + `/powiatwulkanowy/${req.params.customerSymbol}/LoginEndpoint.aspx` + ); + res.render("uczenplus/app"); +}); + +module.exports = router; diff --git a/src/routes/uonetplus.js b/src/routes/uonetplus.js index f5fb6f5..db671a6 100644 --- a/src/routes/uonetplus.js +++ b/src/routes/uonetplus.js @@ -161,9 +161,23 @@ router.all(/^\/([a-z0-9]+)(?:\/LoginEndpoint\.aspx|\/)?$/i, (req, res) => { router.get(["/powiatwulkanowy/Start.mvc", "/powiatwulkanowy/Start.mvc/Index"], (req, res) => { res.render("homepage", { - title: "Uonet+", - uonetplusOpiekun: protocol(req) + "://" + req.get('host').replace("uonetplus", "uonetplus-opiekun"), - uonetplusUczen: protocol(req) + "://" + req.get('host').replace("uonetplus", "uonetplus-uczen") + title: "Uonet+", + uonetplusOpiekun: + protocol(req) + + "://" + + req.get("host").replace("uonetplus", "uonetplus-opiekun"), + uonetplusUczen: + protocol(req) + + "://" + + req.get("host").replace("uonetplus", "uonetplus-uczen"), + uonetplusUczenplus: + protocol(req) + + "://" + + req.get("host").replace("uonetplus", "uonetplus-uczenplus"), + uonetplusWiadomosciplus: + protocol(req) + + "://" + + req.get("host").replace("uonetplus", "uonetplus-wiadomosciplus"), }); }); diff --git a/src/views/homepage.pug b/src/views/homepage.pug index b5fcfe9..8e0cdd1 100755 --- a/src/views/homepage.pug +++ b/src/views/homepage.pug @@ -54,9 +54,6 @@ block content // many schools #idAppUczenExt .newAppLink - a(href=uonetplusUczen + "/powiatwulkanowy/123456/") - span.header.directLink SZK1 - br a(href=uonetplusUczen + "/powiatwulkanowy/123457/") span.header.directLink SZK2 br @@ -69,5 +66,22 @@ block content #idEmptyAppUczenExt .name Uczeń NOWOŚĆ + // # new new student (student+) + + .appLink + a(href=uonetplusUczenplus + "/powiatwulkanowy/123456/App") + .imagedHeader.directLink + #idEmptyAppUczenPlus + .UczenPlusImg.appImg + .name Uczeń Plus + + // # messages+ + + .appLink + a(href=uonetplusWiadomosciplus + "/powiatwulkanowy/App") + .imagedHeader.directLink + #idEmptyAppWiadomosciPlus + .WiadomosciPlusPlusImg.appImg + .name Wiadomości Plus .appLink a(href="/powiatwulkanowy/Start.mvc/Endpoints") Kafelki