mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2025-12-24 23:26:18 +00:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a380c63b2 | ||
|
|
aac173d7a1 | ||
|
|
6d058f0750 | ||
|
|
0550f92b5f | ||
|
|
d2009e62ca | ||
|
|
450b52517e | ||
|
|
9188728376 | ||
|
|
94e2a0d34c | ||
|
|
3e6e1f7bc0 | ||
|
|
5f91229e82 | ||
|
|
0d3055f936 | ||
|
|
1a340ff700 | ||
|
|
f6f93df2fa | ||
|
|
1791b0df51 | ||
|
|
d59b55c152 | ||
|
|
e6df1a2185 | ||
|
|
67f4a3f2c4 | ||
|
|
8dae143d72 | ||
|
|
e280e995bf | ||
|
|
b88c2f6428 | ||
|
|
937ee4ddce | ||
|
|
0d28f6ae55 | ||
|
|
1ba66aa4fb | ||
|
|
b71a30db1f | ||
|
|
43c469d66a | ||
|
|
608f58ccbf | ||
|
|
dde4a0d1cd | ||
|
|
ba07267372 | ||
|
|
001cd4b4de | ||
|
|
c2b0d22a25 | ||
|
|
9e1017edfb | ||
|
|
557d050b36 |
@@ -1,5 +1,9 @@
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/node
|
||||
|
||||
default:
|
||||
tags:
|
||||
- performance
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
@@ -10,9 +14,10 @@ stages:
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- npm install
|
||||
- npm ci
|
||||
- npm run build
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
untracked: true
|
||||
paths:
|
||||
- node_modules/
|
||||
@@ -25,6 +30,7 @@ unit:
|
||||
- npm run test-unit
|
||||
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
|
||||
artifacts:
|
||||
expire_in: 6 month
|
||||
reports:
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
@@ -50,10 +56,7 @@ audit:
|
||||
dependencies:
|
||||
- build
|
||||
script:
|
||||
- npm audit
|
||||
allow_failure: true
|
||||
except:
|
||||
- schedules
|
||||
- npm audit --production
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
@@ -66,13 +69,6 @@ pages:
|
||||
paths:
|
||||
- public
|
||||
|
||||
scheduled-audit:
|
||||
stage: audit
|
||||
script:
|
||||
- npm audit --audit-level=high
|
||||
only:
|
||||
- schedules
|
||||
|
||||
ci:
|
||||
stage: test
|
||||
dependencies:
|
||||
@@ -88,8 +84,6 @@ ci:
|
||||
stage: publish
|
||||
dependencies:
|
||||
- build
|
||||
artifacts:
|
||||
untracked: true
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
services:
|
||||
@@ -100,15 +94,13 @@ ci:
|
||||
only:
|
||||
- master
|
||||
tags:
|
||||
- gitlab-org-docker
|
||||
- secrecy
|
||||
|
||||
.publish_template_manual: &publish_template_manual
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
||||
stage: publish
|
||||
dependencies:
|
||||
- build
|
||||
artifacts:
|
||||
untracked: true
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
services:
|
||||
@@ -127,7 +119,7 @@ ci:
|
||||
- branches
|
||||
when: manual
|
||||
tags:
|
||||
- gitlab-org-docker
|
||||
- secrecy
|
||||
|
||||
.publish_version_template: &publish_version_template
|
||||
script:
|
||||
|
||||
33
CHANGELOG.md
33
CHANGELOG.md
@@ -1,3 +1,36 @@
|
||||
# [0.6.0](https://gitlab.com/openstapps/backend/compare/v0.5.0...v0.6.0) (2023-01-30)
|
||||
|
||||
|
||||
|
||||
# [0.5.0](https://gitlab.com/openstapps/backend/compare/v0.4.1...v0.5.0) (2022-12-06)
|
||||
|
||||
|
||||
|
||||
## [0.4.1](https://gitlab.com/openstapps/backend/compare/v0.4.0...v0.4.1) (2022-11-02)
|
||||
|
||||
|
||||
|
||||
# [0.4.0](https://gitlab.com/openstapps/backend/compare/v0.3.1...v0.4.0) (2022-10-21)
|
||||
|
||||
|
||||
|
||||
## [0.3.1](https://gitlab.com/openstapps/backend/compare/v0.3.0...v0.3.1) (2022-09-02)
|
||||
|
||||
|
||||
|
||||
# [0.3.0](https://gitlab.com/openstapps/backend/compare/v0.2.0...v0.3.0) (2022-08-24)
|
||||
|
||||
|
||||
|
||||
# [0.2.0](https://gitlab.com/openstapps/backend/compare/v0.1.0...v0.2.0) (2022-08-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* update PAIA API URL ([a20200e](https://gitlab.com/openstapps/backend/commit/a20200e52a725ede42cb5e026a5a693b1ba3d149))
|
||||
|
||||
|
||||
|
||||
# [0.1.0](https://gitlab.com/openstapps/backend/compare/16bbb7e9e36b7adf27452e1b09f7970e98aa27df...v0.1.0) (2022-06-30)
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import {RecursivePartial} from '@openstapps/logger/lib/common';
|
||||
/**
|
||||
* This is the default configuration for the technical university of Berlin
|
||||
*/
|
||||
const config: RecursivePartial<SCConfigFile> = {
|
||||
};
|
||||
const config: RecursivePartial<SCConfigFile> = {};
|
||||
|
||||
export default config;
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
import {SCAboutPageContentType, SCConfigFile, SCLanguageCode} from '@openstapps/core';
|
||||
import {RecursivePartial} from '@openstapps/logger/lib/common';
|
||||
|
||||
const markdownSources: {[key in SCLanguageCode]?: {
|
||||
/**
|
||||
* Privacy policy markdown
|
||||
*/
|
||||
privacyPolicy?: string;
|
||||
/**
|
||||
* Terms and conditions markdown
|
||||
*/
|
||||
termsAndConditions?: string;
|
||||
}} = {en: {}, de: {}};
|
||||
const markdownSources: {
|
||||
[key in SCLanguageCode]?: {
|
||||
/**
|
||||
* Privacy policy markdown
|
||||
*/
|
||||
privacyPolicy?: string;
|
||||
/**
|
||||
* Terms and conditions markdown
|
||||
*/
|
||||
termsAndConditions?: string;
|
||||
};
|
||||
} = {en: {}, de: {}};
|
||||
|
||||
markdownSources.de!.privacyPolicy =
|
||||
`
|
||||
markdownSources.de!.privacyPolicy = `
|
||||
Diese Datenschutzerklärung dient zur Erfüllung der nach Artikel 13 EU DSGVO geforderten Informationspflicht bei Erhebung von Daten zum Zeitpunkt der Erhebung bei betroffenen Personen.
|
||||
|
||||
# **Name und Anschrift des Verantwortlichen**
|
||||
@@ -176,15 +177,14 @@ Pseudonymisierung gehören kann.</li>
|
||||
</ol>
|
||||
`;
|
||||
|
||||
markdownSources.de!.termsAndConditions =
|
||||
`
|
||||
markdownSources.de!.termsAndConditions = `
|
||||
<p>Stand: 04. November 2015</p>
|
||||
<p>Es gilt der jeweilige Datenschutz der Hochschule im jeweiligen Bundesland. Darüber hinaus gelten die folgenden Vereinbarungen. Mit der Installation erklären Sie sich bereit die folgenden Bedingungen zu akzeptieren. <br>
|
||||
</p>
|
||||
<ol>
|
||||
<li>Geltungsbereich und verwendete Bezeichnungen
|
||||
<ol>
|
||||
<li> Der Entwicklungsverbund, nachfolgend mit <strong>App-Anbieter</strong> bezeichnet, vermittelt Informationen und Leistungen über ihre mobile App, nachfolgend mit <strong>StApps</strong> bezeichnet. </li>
|
||||
<li> Der Entwicklungsverbund, nachfolgend mit <strong>App-Anbieter</strong> bezeichnet, vermittelt Informationen und Leistungen über ihre mobile App, nachfolgend mit <strong>Open StApps</strong> bezeichnet. </li>
|
||||
<li> Diensteanbieter der entsprechenden Hochschulauswahl ist die jeweilige Hochschule mit jeweils hochschulspezifischen und nichthochschulspezifischen Angeboten selbst. Nachfolgend werden folgende Unterscheidungen getroffen:
|
||||
<ul>
|
||||
<li>Hochschule, nachfolgend als <strong>Datenanbieter</strong> bezeichnet, stellt hochschulspezifische Angebote bereit.</li>
|
||||
@@ -199,9 +199,9 @@ markdownSources.de!.termsAndConditions =
|
||||
<li> Es gilt das jeweilige Impressum des Daten- oder Drittdatenanbieters. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Leistungen von StApps
|
||||
<li>Leistungen von Open StApps
|
||||
<ol>
|
||||
<li>StApps tritt im Rahmen seiner Tätigkeit ausschließlich als App-Anbieter von Dienstangeboten auf. Nach Ausübung von Prozessabwicklungen innerhalb des App-Anbieters, können weitere administrative Tätigkeiten vom App-Anbieter hinzutreten. </li>
|
||||
<li>Open StApps tritt im Rahmen seiner Tätigkeit ausschließlich als App-Anbieter von Dienstangeboten auf. Nach Ausübung von Prozessabwicklungen innerhalb des App-Anbieters, können weitere administrative Tätigkeiten vom App-Anbieter hinzutreten. </li>
|
||||
<li>Der App-Anbieter bietet selbst keine eigenen Dienstangebote an, außer sie dienen der Kennzeichnung und Zuordnung dieser. Somit gilt bspw. die Prüfungsanmeldung nicht zu den Vertragspflichten des App-Anbieters. Eine erfolgreiche Prozessabwicklung eines Dienstangebots kommt ausschließlich zwischen den Studierenden und dem jeweiligen Daten- oder Drittdatenanbieter zustande. Der App-Anbieter haftet daher auch nicht für die Verfügbarkeit, Durchführung, Qualität, Begleitumstände oder etwaige Störungen oder Änderungen der Dienstangebote. Derartige Sachverhalte liegen grundsätzlich im alleinigen Verantwortungsbereich der Daten- oder Drittdatenanbieter. </li>
|
||||
<li> Der App-Anbieter haftet entsprechend auch nicht für die Richtigkeit, Vollständigkeit oder Aktualität der Dienstangebote, die während der Prozessabwicklung zu den jeweiligen Dienstangeboten dargestellt werden. Die Vermittlung der Dienstangebote erfolgt auf Basis der von den Daten- oder Drittdatenanbieter bereitgestellten und den Studierenden übermittelten Dienstangeboten. Es erfolgt dabei seitens des App-Anbieters keine vorherige, begleitende, allgemeine oder individuelle Korrektheits- oder Verfügbarkeitsprüfung. </li>
|
||||
</ol>
|
||||
@@ -214,8 +214,8 @@ markdownSources.de!.termsAndConditions =
|
||||
<li> Der Studierende hat im Interesse einer ordnungsgemäßen Prozessabwicklung folgende Verpflichtungen:
|
||||
<ul>
|
||||
<li>Die Verfügbarkeit einer stetigen Internetverbindung während einer Prozessabwicklung</li>
|
||||
<li>Die ordnungsgemäße Benutzung der StApps</li>
|
||||
<li>Eine innerhalb der StApps erfolgreiche Authentifizierung und Authorisierung falls eine Prozessabwicklung diese benötigt</li>
|
||||
<li>Die ordnungsgemäße Benutzung der Open StApps</li>
|
||||
<li>Eine innerhalb der Open StApps erfolgreiche Authentifizierung und Authorisierung falls eine Prozessabwicklung diese benötigt</li>
|
||||
<li>Die ordnungsgemäße Eingabe und Prüfung der zur Prozessabwicklung erforderlichen Daten</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -234,21 +234,21 @@ markdownSources.de!.termsAndConditions =
|
||||
<li>Aus Gründen der Beweissicherung werden Prozessabwicklungen personen- und gerätebezogen gespeichert, falls Prozessabwicklungen einen Personenbezug erfordern. Die Speicherung erfolgt nach den üblichen Gesetzen, mindestens aber für 90 Tage. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Datenschutz und Nutzung der StApps
|
||||
<li>Datenschutz und Nutzung der Open StApps
|
||||
<ol>
|
||||
<li>Die StApps wird als App über die Vertriebsanbieter "Google Play Store" oder in "Apple iTunes" bereitgestellt. Der Vertriebspartner stellt eigene Nutzungs- und Datenschutzerklärungen bereit. StApps hat keinerlei Einfluss auf deren Nutzungsbedingungen und Datenschutzerklärungen.</li>
|
||||
<li>Die Open StApps wird als App über die Vertriebsanbieter "Google Play Store" oder in "Apple iTunes" bereitgestellt. Der Vertriebspartner stellt eigene Nutzungs- und Datenschutzerklärungen bereit. Open StApps hat keinerlei Einfluss auf deren Nutzungsbedingungen und Datenschutzerklärungen.</li>
|
||||
<li>Personenbezogene und sonstige Daten des Studierenden werden vom App-Anbieter nur erhoben, gespeichert und an Daten- oder Drittdatenanbieter weitergeleitet, sofern dies für eine abgeschlossene Prozessabwicklung mit Personenbezug erforderlich ist.</li>
|
||||
<li> Sofern der Studierende Kontaktinformationen angibt, kann eine Kontaktaufnahme von Seiten des App-Anbieters erfolgen. </li>
|
||||
<li>Der App-Anbieter gewährt den Nutzenden ein kostenfreies, zeitlich unbefristetes, nichtkommerzielles Recht zu Nutzung (<strong>Lizenz</strong>) der StApps ein.</li>
|
||||
<li>Die Lizenz berechtigt den Nutzenden die Nutzung der StApps im Rahmen eines normalen Gebrauchs. Dies umfasst die Installation, Ausführung das Laden der StApps in den Arbeitsspeicher und seinen Ablauf. Andere Nutzungsarten sind ausgeschlossen.</li>
|
||||
<li>Die Abänderung, Übersetzung, Bearbeitung, Umgestaltungen, Zurückentwickelung (sog. Reverse Engineering) und Vervielfältigung, auch teilweise oder vorübergehend, der StApps und des Programmcodes sind unzulässig und stellen ein Verstoß von § 39 Abs. 2 UrhG dar. Im Übrigen bleiben §§ 69d, 69e UrhG unberührt.</li>
|
||||
<li>Der App-Anbieter ist Inhaber sämtlicher gewerblicher Schutz-, Nutzungs- und Urheberrechte an der StApps sowie zugehöriger Dokumentationen. Hinweise auf Urheberrechte oder auf sonstige gewerbliche Schutzrechte, die sich in der StApps befinden, dürfen weder verändert, beseitigt noch sonst unkenntlich gemacht werden.<br>
|
||||
<li>Der App-Anbieter gewährt den Nutzenden ein kostenfreies, zeitlich unbefristetes, nichtkommerzielles Recht zu Nutzung (<strong>Lizenz</strong>) der Open StApps ein.</li>
|
||||
<li>Die Lizenz berechtigt den Nutzenden die Nutzung der Open StApps im Rahmen eines normalen Gebrauchs. Dies umfasst die Installation, Ausführung das Laden der Open StApps in den Arbeitsspeicher und seinen Ablauf. Andere Nutzungsarten sind ausgeschlossen.</li>
|
||||
<li>Die Abänderung, Übersetzung, Bearbeitung, Umgestaltungen, Zurückentwickelung (sog. Reverse Engineering) und Vervielfältigung, auch teilweise oder vorübergehend, der Open StApps und des Programmcodes sind unzulässig und stellen ein Verstoß von § 39 Abs. 2 UrhG dar. Im Übrigen bleiben §§ 69d, 69e UrhG unberührt.</li>
|
||||
<li>Der App-Anbieter ist Inhaber sämtlicher gewerblicher Schutz-, Nutzungs- und Urheberrechte an der Open StApps sowie zugehöriger Dokumentationen. Hinweise auf Urheberrechte oder auf sonstige gewerbliche Schutzrechte, die sich in der Open StApps befinden, dürfen weder verändert, beseitigt noch sonst unkenntlich gemacht werden.<br>
|
||||
</li>
|
||||
<li>Dienstangebote der Daten- oder Drittdatenanbieter dürfen nicht verändert, kopiert, verbreitet, übertragen, veröffentlicht, lizenziert, abgetreten oder verkauft und/oder keine davon abgeleiteten Werke erstellt werden.</li>
|
||||
<li>Über die Einhaltung der Rechte, wie bspw. dem Urheberrecht und Personenrecht, ist der Daten- oder Drittdatenanbieter bei seinen Dienstangeboten zuständig. Die für die ordnungsgemäße Funktion der StApps notwendigen Rechte sind vorhanden und/oder wurden rechtlich eingeräumt.</li>
|
||||
<li>Links, die außerhalb der StApps führen, werden den Studierenden nur als Hinweise zur Verfügung gestellt. Der App-Anbieter hat auf die Inhalte, die über den Link abrufbar sind keinen Einfluss und bedeutet gleichsam keine Billigung dieser Inhalte, noch stehen diese Inhalte in Verbindung zwischen StApps und den Betreibern. </li>
|
||||
<li>Für alle Inhalte innerhalb der StApps gilt das Copyright © 2015 für "StApps - Das Studierenden-App Development Kit" und deren Daten- oder Drittdatenanbieter. Alle Rechte sind vorbehalten. </li>
|
||||
<li>Alle Funktionen innerhalb der StApps stellen ein urheberrechtlich geschütztes Werk der StApps und deren Verbundmitglieder dar. Die Nutzung der StApps durch die Studierenden unterliegen den Bedingungen der Endbenutzer-Lizenzvereinbarung (EULA). Die Reproduktion oder Weiterverbreitung der Funktionen innerhalb der StApps sowie der StApps selbst ist verboten. Ferner darf die Software der StApps weder durch reverse engineering zurückverfolgt, dekompiliert oder disassembliert werden. Die StApps darf weder direkt noch indirekt in Länder exportiert und/oder weiterexportiert werden, die den Exportbeschränkungen von Deutschland oder deren Schengenstaaten unterliegen.</li>
|
||||
<li>Über die Einhaltung der Rechte, wie bspw. dem Urheberrecht und Personenrecht, ist der Daten- oder Drittdatenanbieter bei seinen Dienstangeboten zuständig. Die für die ordnungsgemäße Funktion der Open StApps notwendigen Rechte sind vorhanden und/oder wurden rechtlich eingeräumt.</li>
|
||||
<li>Links, die außerhalb der Open StApps führen, werden den Studierenden nur als Hinweise zur Verfügung gestellt. Der App-Anbieter hat auf die Inhalte, die über den Link abrufbar sind keinen Einfluss und bedeutet gleichsam keine Billigung dieser Inhalte, noch stehen diese Inhalte in Verbindung zwischen Open StApps und den Betreibern. </li>
|
||||
<li>Für alle Inhalte innerhalb der Open StApps gilt das Copyright © 2015 für "Open StApps - Das Studierenden-App Development Kit" und deren Daten- oder Drittdatenanbieter. Alle Rechte sind vorbehalten. </li>
|
||||
<li>Alle Funktionen innerhalb der Open StApps stellen ein urheberrechtlich geschütztes Werk der Open StApps und deren Verbundmitglieder dar. Die Nutzung der Open StApps durch die Studierenden unterliegen den Bedingungen der Endbenutzer-Lizenzvereinbarung (EULA). Die Reproduktion oder Weiterverbreitung der Funktionen innerhalb der Open StApps sowie der Open StApps selbst ist verboten. Ferner darf die Software der Open StApps weder durch reverse engineering zurückverfolgt, dekompiliert oder disassembliert werden. Die Open StApps darf weder direkt noch indirekt in Länder exportiert und/oder weiterexportiert werden, die den Exportbeschränkungen von Deutschland oder deren Schengenstaaten unterliegen.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Nutzung von Standortdaten
|
||||
@@ -258,13 +258,13 @@ markdownSources.de!.termsAndConditions =
|
||||
</li>
|
||||
<li>Gewährleistung
|
||||
<ol>
|
||||
<li>Der App-Anbieter gewährleistet, gemäß den Vorschriften der § 434 ff BGB, dass StApps mit größter gebotener Sorgfalt und Fachkenntnis erstellt worden ist. Ein völliger Ausschluss von Softwarefehlern innerhalb der StApps ist zum derzeitigen Kenntnisstand nicht möglich.</li>
|
||||
<li>Der App-Anbieter der StApps korrigiert Fehler, die eine bestimmungsmäßige Nutzung der StApps erheblich beeinträchtigen. Die Fehlerbehebung erfolgt nach jeweiliger Fehlereinstufung durch den App-Anbieter zu einem ihm festgelegten Zeitpunkt. Zur Fehlerbeseitigung ist die nutzende Person verpflichtet die fehlerbereinigte Version über die vorhandene fehlerbehaftete Version zu installieren und auszuführen. Eine Mitwirkung der nutzenden Person zur Fehlerbehebung kann erforderlich sein. </li>
|
||||
<li>Der App-Anbieter gewährleistet, gemäß den Vorschriften der § 434 ff BGB, dass Open StApps mit größter gebotener Sorgfalt und Fachkenntnis erstellt worden ist. Ein völliger Ausschluss von Softwarefehlern innerhalb der Open StApps ist zum derzeitigen Kenntnisstand nicht möglich.</li>
|
||||
<li>Der App-Anbieter der Open StApps korrigiert Fehler, die eine bestimmungsmäßige Nutzung der Open StApps erheblich beeinträchtigen. Die Fehlerbehebung erfolgt nach jeweiliger Fehlereinstufung durch den App-Anbieter zu einem ihm festgelegten Zeitpunkt. Zur Fehlerbeseitigung ist die nutzende Person verpflichtet die fehlerbereinigte Version über die vorhandene fehlerbehaftete Version zu installieren und auszuführen. Eine Mitwirkung der nutzenden Person zur Fehlerbehebung kann erforderlich sein. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Haftung
|
||||
<ol>
|
||||
<li>Die vertraglichen Pflichten von StApps umfassen ausschließlich die ordnungsgemäße Vermittlung von Dienstangeboten zwischen Studierenden und Daten- oder Drittdatenanbieter unter der Berücksichtung der in dieser AGB aufgeführten Vereinbarungen.</li>
|
||||
<li>Die vertraglichen Pflichten von Open StApps umfassen ausschließlich die ordnungsgemäße Vermittlung von Dienstangeboten zwischen Studierenden und Daten- oder Drittdatenanbieter unter der Berücksichtung der in dieser AGB aufgeführten Vereinbarungen.</li>
|
||||
<li>Der App-Anbieter haftet für Schäden, die er vorsätzlich oder grob fahrlässig verursacht hat.</li>
|
||||
<li>Der App-Anbieter haftet nicht für die Wiederbeschaffung von Daten.</li>
|
||||
<li>Die nutzende Person ist zur regelmäßigen Sicherung seiner Daten verpflichtet.</li>
|
||||
@@ -273,7 +273,7 @@ markdownSources.de!.termsAndConditions =
|
||||
<li>Schlussbestimmungen
|
||||
<ol>
|
||||
<li>Sollte eine Bestimmung dieses Vertrages rechtsunwirksam sein oder werden, so ist dies ohne Einfluss auf die Gültigkeit der übrigen Vertragsbestimmungen und des Vertrages selbst. Die unwirksame Bestimmung wird durch eine solche wirksame Bestimmung ersetzt, die ihr wirtschaftlich nahezu entspricht. Dasselbe gilt für Vertragslücken oder nicht ausreichende vertragliche Regelungen. </li>
|
||||
<li>Die Allgemeinen Geschäftsbedingungen der StApps und der Daten- oder Drittdatenanbieter können jederzeit ohne gesonderte Vorankündigung geändert werden. Bereits abgeschlossene bzw. laufende Verträge sind von Änderungen nicht rückwirkend betroffen. StApps stellt stets die eigene aktuelle und gültige Version ihrer Allgemeinen Geschäftsbedingungen bereit. </li>
|
||||
<li>Die Allgemeinen Geschäftsbedingungen der Open StApps und der Daten- oder Drittdatenanbieter können jederzeit ohne gesonderte Vorankündigung geändert werden. Bereits abgeschlossene bzw. laufende Verträge sind von Änderungen nicht rückwirkend betroffen. Open StApps stellt stets die eigene aktuelle und gültige Version ihrer Allgemeinen Geschäftsbedingungen bereit. </li>
|
||||
<li>Es gilt das Recht der Bundesrepublik Deutschland.</li>
|
||||
<li>Es gilt Berlin als Gerichtsstand.</li>
|
||||
</ol>
|
||||
@@ -282,8 +282,7 @@ markdownSources.de!.termsAndConditions =
|
||||
<p>Fragen oder Anmerkungen zu dieser AGB richten Sie bitte an: <a href="mailto:app@rz.uni-frankfurt.de">app@rz.uni-frankfurt.de</a></p>
|
||||
`;
|
||||
|
||||
markdownSources.en!.privacyPolicy =
|
||||
`
|
||||
markdownSources.en!.privacyPolicy = `
|
||||
This data protection declaration serves to fulfill the information obligation required under Article 13 EU DSGVO when data is collected at the time of collection from data subjects.
|
||||
|
||||
# **Name and address of the responsible person**
|
||||
@@ -445,15 +444,14 @@ Pseudonymization may include.</li>
|
||||
</ol>
|
||||
`;
|
||||
|
||||
markdownSources.en!.termsAndConditions =
|
||||
`
|
||||
markdownSources.en!.termsAndConditions = `
|
||||
<p>As of November 04, 2015</p>
|
||||
<p>The respective data protection of the university in the respective federal state applies. In addition, the following agreements apply. By installing you agree to accept the following terms and conditions. <br>
|
||||
</p>
|
||||
<ol>
|
||||
<li>Scope and terms used
|
||||
<ol>
|
||||
<li> The development association, hereinafter referred to as <strong>app provider</strong>, provides information and services via its mobile app, hereinafter referred to as <strong>StApps</strong>. </li>
|
||||
<li> The development association, hereinafter referred to as <strong>app provider</strong>, provides information and services via its mobile app, hereinafter referred to as <strong>Open StApps</strong>. </li>
|
||||
<li> The service provider of the corresponding university selection is the respective university itself with university-specific and non-university-specific offers. The following distinctions are made:
|
||||
<ul>
|
||||
<li>University, hereinafter referred to as <strong>data provider</strong>, provides university-specific offers.</li>
|
||||
@@ -468,9 +466,9 @@ markdownSources.en!.termsAndConditions =
|
||||
<li> The respective imprint of the data or third-party data provider applies. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Services provided by StApps
|
||||
<li>Services provided by Open StApps
|
||||
<ol>
|
||||
<li>StApps acts exclusively as an app provider of services within the scope of its activities. After carrying out process handling within the app provider, further administrative activities can be added by the app provider. </li>
|
||||
<li>Open StApps acts exclusively as an app provider of services within the scope of its activities. After carrying out process handling within the app provider, further administrative activities can be added by the app provider. </li>
|
||||
<li>The app provider does not offer its own services, unless they serve to identify and assign them. Thus, for example, the exam registration does not apply to the contractual obligations of the app provider. A successful process handling of a service comes about exclusively between the students and the respective data or third-party data provider. The app provider is therefore not liable for the availability, implementation, quality, accompanying circumstances or any disruptions or changes to the service offerings. Such matters are fundamentally the sole responsibility of the data or third-party data provider. </li>
|
||||
<li> Accordingly, the app provider is not liable for the correctness, completeness or topicality of the service offers that are presented during the processing of the respective service offers. The mediation of the service offers is based on the service offers provided by the data or third-party data providers and transmitted to the students. The app provider does not carry out any prior, accompanying, general or individual checks for correctness or availability. </li>
|
||||
</ol>
|
||||
@@ -483,8 +481,8 @@ markdownSources.en!.termsAndConditions =
|
||||
<li> The student has the following obligations in the interest of proper processing:
|
||||
<ul>
|
||||
<li>The availability of a constant internet connection during a process execution</li>
|
||||
<li>Proper use of StApps</li>
|
||||
<li>Successful authentication and authorization within the StApps if a process requires this</li>
|
||||
<li>Proper use of Open StApps</li>
|
||||
<li>Successful authentication and authorization within the Open StApps if a process requires this</li>
|
||||
<li>The proper entry and verification of the data required for process execution</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -503,21 +501,21 @@ markdownSources.en!.termsAndConditions =
|
||||
<li>For reasons of preserving evidence, processes are stored in relation to persons and devices if processes require personal reference. The storage takes place according to the usual laws, but at least for 90 days. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Privacy and use of the StApps
|
||||
<li>Privacy and use of the Open StApps
|
||||
<ol>
|
||||
<li>The StApps is distributed as an app via the distribution provider "Google Play Store" or in "Apple iTunes" provided. The sales partner provides its own usage and data protection declarations. StApps has no influence on their terms of use and privacy policies.</li>
|
||||
<li>The Open StApps is distributed as an app via the distribution provider "Google Play Store" or in "Apple iTunes" provided. The sales partner provides its own usage and data protection declarations. Open StApps has no influence on their terms of use and privacy policies.</li>
|
||||
<li>Personal and other data of the student are only collected, stored and forwarded to data or third-party data providers by the app provider if this is necessary for a completed process with personal reference.</li>
|
||||
<li> If the student provides contact information, the app provider can contact you. </li>
|
||||
<li>The app provider grants the user a free, unlimited, non-commercial right to use (<strong>license</strong>) the StApps.</li>
|
||||
<li>The license entitles the user to use the StApps as part of normal use. This includes the installation, execution, loading of the StApps into memory and its expiration. Other types of use are excluded.</li>
|
||||
<li>The modification, translation, processing, redesign, reverse engineering (so-called reverse engineering) and duplication, even partial or temporary, of the StApps and the program code are not permitted and constitute a violation of § 39 Para. 2 UrhG. The rest remain §§ 69d, 69e UrhG unaffected.</li>
|
||||
<li>The app provider is the owner of all industrial property rights, usage rights and copyrights to the StApps and related documentation. References to copyrights or other industrial property rights that are in the StApps may not be changed, removed or otherwise made unrecognizable.<br>
|
||||
<li>The app provider grants the user a free, unlimited, non-commercial right to use (<strong>license</strong>) the Open StApps.</li>
|
||||
<li>The license entitles the user to use the Open StApps as part of normal use. This includes the installation, execution, loading of the Open StApps into memory and its expiration. Other types of use are excluded.</li>
|
||||
<li>The modification, translation, processing, redesign, reverse engineering (so-called reverse engineering) and duplication, even partial or temporary, of the Open StApps and the program code are not permitted and constitute a violation of § 39 Para. 2 UrhG. The rest remain §§ 69d, 69e UrhG unaffected.</li>
|
||||
<li>The app provider is the owner of all industrial property rights, usage rights and copyrights to the Open StApps and related documentation. References to copyrights or other industrial property rights that are in the Open StApps may not be changed, removed or otherwise made unrecognizable.<br>
|
||||
</li>
|
||||
<li>Service offerings from the data or third party data providers may not be modified, copied, distributed, transmitted, published, licensed, assigned or sold and/or no derivative works created therefrom.</li>
|
||||
<li>The data or third-party data provider is responsible for compliance with the rights, such as copyright and personal rights, in his service offerings. The rights necessary for the proper functioning of the StApps exist and/or have been legally granted.</li>
|
||||
<li>Links that lead outside of the StApps are only provided to the students as information. The app provider has no influence on the content that can be accessed via the link and does not signify any approval of this content, nor is this content connected between StApps and the operators. </li>
|
||||
<li>All content within StApps is copyright © 2015 for "StApps - The Student App Development Kit" and their data or third party data providers. All rights reserved. </li>
|
||||
<li>All functions within the StApps are the copyrighted work of the StApps and their network members. The use of the StApps by students is subject to the terms of the End User License Agreement (EULA). The reproduction or redistribution of the functions within the StApps and the StApps themselves is prohibited. Furthermore, the StApps software may not be reverse engineered, decompiled or disassembled. The StApps may not be directly or indirectly exported and/or re-exported to countries that are subject to the export restrictions of Germany or their Schengen states.</li>
|
||||
<li>The data or third-party data provider is responsible for compliance with the rights, such as copyright and personal rights, in his service offerings. The rights necessary for the proper functioning of the Open StApps exist and/or have been legally granted.</li>
|
||||
<li>Links that lead outside of the Open StApps are only provided to the students as information. The app provider has no influence on the content that can be accessed via the link and does not signify any approval of this content, nor is this content connected between Open StApps and the operators. </li>
|
||||
<li>All content within Open StApps is copyright © 2015 for "Open StApps - The Student App Development Kit" and their data or third party data providers. All rights reserved. </li>
|
||||
<li>All functions within the Open StApps are the copyrighted work of the Open StApps and their network members. The use of the Open StApps by students is subject to the terms of the End User License Agreement (EULA). The reproduction or redistribution of the functions within the Open StApps and the Open StApps themselves is prohibited. Furthermore, the Open StApps software may not be reverse engineered, decompiled or disassembled. The Open StApps may not be directly or indirectly exported and/or re-exported to countries that are subject to the export restrictions of Germany or their Schengen states.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Use of location data
|
||||
@@ -527,13 +525,13 @@ markdownSources.en!.termsAndConditions =
|
||||
</li>
|
||||
<li>Warranty
|
||||
<ol>
|
||||
<li>The app provider guarantees, in accordance with the provisions of § 434 ff BGB, that StApps has been created with the utmost care and expertise. A complete exclusion of software errors within the StApps is not possible at the current state of knowledge.</li>
|
||||
<li>The app provider of the StApps corrects errors that significantly impair the intended use of the StApps. Troubleshooting is carried out according to the respective error classification by the app provider at a time specified by the app provider. To eliminate errors, the user is obliged to install and run the error-corrected version over the existing error-affected version. The user's involvement in troubleshooting may be required. </li>
|
||||
<li>The app provider guarantees, in accordance with the provisions of § 434 ff BGB, that Open StApps has been created with the utmost care and expertise. A complete exclusion of software errors within the Open StApps is not possible at the current state of knowledge.</li>
|
||||
<li>The app provider of the Open StApps corrects errors that significantly impair the intended use of the Open StApps. Troubleshooting is carried out according to the respective error classification by the app provider at a time specified by the app provider. To eliminate errors, the user is obliged to install and run the error-corrected version over the existing error-affected version. The user's involvement in troubleshooting may be required. </li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Liability
|
||||
<ol>
|
||||
<li>The contractual obligations of StApps exclusively include the proper mediation of service offers between students and data or third-party data providers, taking into account the agreements listed in these terms and conditions.</li>
|
||||
<li>The contractual obligations of Open StApps exclusively include the proper mediation of service offers between students and data or third-party data providers, taking into account the agreements listed in these terms and conditions.</li>
|
||||
<li>The app provider is liable for damage caused intentionally or through gross negligence.</li>
|
||||
<li>The app provider is not liable for recovering data.</li>
|
||||
<li>The user is obliged to regularly back up their data.</li>
|
||||
@@ -542,7 +540,7 @@ markdownSources.en!.termsAndConditions =
|
||||
<li>Final Provisions
|
||||
<ol>
|
||||
<li>Should a provision of this contract be or become legally ineffective, this has no effect on the validity of the remaining contractual provisions and the contract itself. The ineffective provision will be replaced by an effective provision that is economically almost identical to it. The same applies to gaps in the contract or insufficient contractual provisions. </li>
|
||||
<li>The general terms and conditions of the StApps and the data or third-party data providers can be changed at any time without separate prior notice. Contracts that have already been concluded or are in progress are not retrospectively affected by changes. StApps always provides its own current and valid version of its general terms and conditions. </li>
|
||||
<li>The general terms and conditions of the Open StApps and the data or third-party data providers can be changed at any time without separate prior notice. Contracts that have already been concluded or are in progress are not retrospectively affected by changes. Open StApps always provides its own current and valid version of its general terms and conditions. </li>
|
||||
<li>The law of the Federal Republic of Germany applies.</li>
|
||||
<li>Berlin is the place of jurisdiction.</li>
|
||||
</ol>
|
||||
@@ -551,7 +549,6 @@ markdownSources.en!.termsAndConditions =
|
||||
<p>If you have any questions or comments about these terms and conditions, please contact: <a href="mailto:app@rz.uni-frankfurt.de">app@rz.uni-frankfurt.de</a></p>
|
||||
`;
|
||||
|
||||
|
||||
/**
|
||||
* This is the default configuration for the Goethe university of Frankfurt
|
||||
*/
|
||||
@@ -595,35 +592,36 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
},
|
||||
aboutPages: {
|
||||
'about': {
|
||||
title: 'Über das StApps Projekt',
|
||||
title: 'Über Open StApps',
|
||||
content: [
|
||||
{
|
||||
title:
|
||||
'Verbundprojekt mehrerer Hochschulen für eine generische Studierenden-App',
|
||||
title: 'Verbundprojekt mehrerer Hochschulen für eine generische Studierenden-App',
|
||||
content: {
|
||||
type: SCAboutPageContentType.MARKDOWN,
|
||||
value: `
|
||||
StApps bietet Studierenden aller beteiligten Hochschulen eine qualitativ
|
||||
hochwertige App für den Studienalltag. StApps-Verbundpartner integrieren
|
||||
Open StApps bietet Studierenden aller beteiligten Hochschulen eine qualitativ
|
||||
hochwertige App für den Studienalltag. Open StApps-Verbundpartner integrieren
|
||||
generalisierbare Studierendenprozesse so in App-Module, dass diese auch
|
||||
von anderen Hochschulen verwendet werden können. Die zur StApps-App ankommenden
|
||||
Daten einer Datenquelle einer Art sind in einem generalisierten Datenmodell
|
||||
so aufbereitet, dass ein Austausch der Datenquelle problemlos möglich ist und
|
||||
die StApps-App problemlos weiterhin funktionsfähig bleibt.
|
||||
von anderen Hochschulen verwendet werden können. Die in der Open StApps App
|
||||
verwendeten Daten einer Datenquelle sind in einem generalisierten Datenmodell
|
||||
so aufbereitet, dass ein Austausch oder Abschaltung der Datenquelle problemlos möglich
|
||||
ist und die Open StApps App problemlos weiterhin funktionsfähig bleibt.
|
||||
`,
|
||||
translations: {
|
||||
en: {
|
||||
value: `StApps offers students from all participating universities a high-quality app for everyday student life.
|
||||
StApps network partners integrate generalizable student processes into app modules in such a way that they can also be used by other universities.
|
||||
The data arriving at the StApps app from a data source of a type is prepared in a generalized data model in such a way that the data source can be
|
||||
exchanged without any problems and the StApps app remains functional without any issues.`,
|
||||
value: `Open StApps provides students from all participating universities with a
|
||||
high-quality app for everyday study. Open StApps partners integrate
|
||||
generalizable student processes into app modules in such a way that they can be
|
||||
can be used by other universities. The data of a data source used in the Open StApps app
|
||||
is prepared in a generalized data model in a way that the data source can be easily
|
||||
exchanged or switched off while the app continues to function without any problems.
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
translations: {
|
||||
en: {
|
||||
title:
|
||||
'Collaborative project of multiple universities for a single generic study app',
|
||||
title: 'Collaborative project of multiple universities for a single generic study app',
|
||||
},
|
||||
},
|
||||
type: SCAboutPageContentType.SECTION,
|
||||
@@ -649,8 +647,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
Norbert-Wollheim-Platz 1<br>
|
||||
60629 Frankfurt
|
||||
`,
|
||||
translations: {
|
||||
},
|
||||
translations: {},
|
||||
type: SCAboutPageContentType.MARKDOWN,
|
||||
},
|
||||
],
|
||||
@@ -669,8 +666,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
'[app@rz.uni-frankfurt.de](mailto:app@rz.uni-frankfurt.de)<br>' +
|
||||
'[+49 69 798 32936](tel:+496979832936)<br>' +
|
||||
'[https://app.rz.uni-frankfurt.de](https://app.rz.uni-frankfurt.de)',
|
||||
translations: {
|
||||
},
|
||||
translations: {},
|
||||
type: SCAboutPageContentType.MARKDOWN,
|
||||
},
|
||||
],
|
||||
@@ -696,7 +692,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'document',
|
||||
icon: 'description',
|
||||
title: 'Impressum',
|
||||
link: 'imprint',
|
||||
translations: {
|
||||
@@ -707,7 +703,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'shield-half',
|
||||
icon: 'policy',
|
||||
title: 'Datenschutz',
|
||||
link: 'privacy',
|
||||
translations: {
|
||||
@@ -718,7 +714,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'reader',
|
||||
icon: 'text_snippet',
|
||||
title: 'Allgemeine Geschäftsbedingungen',
|
||||
link: 'terms',
|
||||
translations: {
|
||||
@@ -729,7 +725,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'library',
|
||||
icon: 'copyright',
|
||||
title: 'Bibliotheken und Lizenzen',
|
||||
link: 'licenses',
|
||||
translations: {
|
||||
@@ -742,7 +738,7 @@ const config: RecursivePartial<SCConfigFile> = {
|
||||
],
|
||||
translations: {
|
||||
en: {
|
||||
title: 'About StApps',
|
||||
title: 'About Open StApps',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -6,7 +6,6 @@ import {RecursivePartial} from '@openstapps/logger/lib/common';
|
||||
/**
|
||||
* This is the default configuration for the university of Kassel
|
||||
*/
|
||||
const config: RecursivePartial<SCConfigFile> = {
|
||||
};
|
||||
const config: RecursivePartial<SCConfigFile> = {};
|
||||
|
||||
export default config;
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
import {SCConfigFile} from '@openstapps/core';
|
||||
import {RecursivePartial} from '@openstapps/logger/lib/common';
|
||||
|
||||
|
||||
/**
|
||||
* This is the default configuration for the university of Kassel
|
||||
*/
|
||||
const config: RecursivePartial<SCConfigFile> = {
|
||||
};
|
||||
const config: RecursivePartial<SCConfigFile> = {};
|
||||
|
||||
export default config;
|
||||
|
||||
@@ -10,39 +10,37 @@ import {
|
||||
SCUserGroupSetting,
|
||||
} from '@openstapps/core';
|
||||
import {readFileSync} from 'fs';
|
||||
import {resolve} from 'path';
|
||||
import path from 'path';
|
||||
|
||||
/**
|
||||
* Evaluates if a number is within the given range
|
||||
*
|
||||
* @param num The number that should be checked
|
||||
* @param number_ The number that should be checked
|
||||
* @param range Array of two numbers representing a range (inclusive interval)
|
||||
*/
|
||||
export function inRangeInclusive(num: number, range: number[]): boolean {
|
||||
return num >= range[0] && num <= range[1];
|
||||
export function inRangeInclusive(number_: number, range: number[]): boolean {
|
||||
return number_ >= range[0] && number_ <= range[1];
|
||||
}
|
||||
|
||||
const sommerRange = [4, 9];
|
||||
const winterRange = [10, 3];
|
||||
const sommerRange = [4, 1];
|
||||
const winterRange = [10, 1];
|
||||
const month = new Date().getMonth();
|
||||
const year = new Date().getFullYear();
|
||||
const winterYearOffset = (month < winterRange[0] ? -1 : 0);
|
||||
const winterYearOffset = month < winterRange[0] ? -1 : 0;
|
||||
const sommerYear = year + (month <= winterRange[1] ? -1 : 0);
|
||||
const winterYear = `${year + winterYearOffset}/${(year + 1 + winterYearOffset)
|
||||
.toString()
|
||||
.slice(-2)}`;
|
||||
const winterYear = `${year + winterYearOffset}/${(year + 1 + winterYearOffset).toString().slice(-2)}`;
|
||||
|
||||
const wsAcronymShort = `WS ${winterYear}`;
|
||||
const ssAcronymShort = `SS ${sommerYear}`;
|
||||
const wsAcronymLong = `WiSe ${winterYear}`;
|
||||
const ssAcronymLong = `SoSe ${sommerYear}`;
|
||||
|
||||
|
||||
const userGroupSetting: SCUserGroupSetting = {
|
||||
categories: ['profile'],
|
||||
defaultValue: 'students',
|
||||
description: 'The user group the app is going to be used.'
|
||||
+ 'This settings for example is getting used for the predefined price category of mensa meals.',
|
||||
description:
|
||||
'The user group the app is going to be used.' +
|
||||
'This settings for example is getting used for the predefined price category of mensa meals.',
|
||||
inputType: SCSettingInputType.SingleChoice,
|
||||
name: 'group',
|
||||
order: 1,
|
||||
@@ -53,24 +51,18 @@ const userGroupSetting: SCUserGroupSetting = {
|
||||
},
|
||||
translations: {
|
||||
de: {
|
||||
description: 'Mit welcher Benutzergruppe soll die App verwendet werden?'
|
||||
+ ' Die Einstellung wird beispielsweise für die Vorauswahl der Preiskategorie der Mensa verwendet.',
|
||||
description:
|
||||
'Mit welcher Benutzergruppe soll die App verwendet werden?' +
|
||||
' Die Einstellung wird beispielsweise für die Vorauswahl der Preiskategorie der Mensa verwendet.',
|
||||
name: 'Gruppe',
|
||||
values: [
|
||||
'Student',
|
||||
'Angestellter',
|
||||
'Gast',
|
||||
],
|
||||
values: ['Studierende', 'Angestellte', 'Gäste'],
|
||||
},
|
||||
en: {
|
||||
description: `The user group the app is going to be used.'
|
||||
+ ' This settings for example is getting used for the predefined price category of mensa meals.`,
|
||||
description:
|
||||
'The user group the app is going to be used.' +
|
||||
' This settings for example is getting used for the predefined price category of mensa meals.',
|
||||
name: 'Group',
|
||||
values: [
|
||||
'student',
|
||||
'employee',
|
||||
'guest',
|
||||
],
|
||||
values: ['students', 'employees', 'guests'],
|
||||
},
|
||||
},
|
||||
type: SCThingType.Setting,
|
||||
@@ -94,18 +86,12 @@ const languageSetting: SCLanguageSetting = {
|
||||
de: {
|
||||
description: 'Die Sprache in der die App angezeigt wird.',
|
||||
name: 'Sprache',
|
||||
values: [
|
||||
'Deutsch',
|
||||
'English',
|
||||
],
|
||||
values: ['Deutsch', 'English'],
|
||||
},
|
||||
en: {
|
||||
description: 'The language this app is going to use.',
|
||||
name: 'Language',
|
||||
values: [
|
||||
'Deutsch',
|
||||
'English',
|
||||
],
|
||||
values: ['Deutsch', 'English'],
|
||||
},
|
||||
},
|
||||
type: SCThingType.Setting,
|
||||
@@ -129,33 +115,37 @@ const config: Partial<SCConfigFile> = {
|
||||
app: {
|
||||
aboutPages: {
|
||||
'about': {
|
||||
title: 'Über das StApps Projekt',
|
||||
title: 'Über das Open StApps Projekt',
|
||||
content: [
|
||||
{
|
||||
title:
|
||||
'Verbundprojekt mehrerer Hochschulen für eine generische Studierenden-App',
|
||||
title: 'Verbundprojekt mehrerer Hochschulen für eine generische Studierenden-App',
|
||||
content: {
|
||||
type: SCAboutPageContentType.MARKDOWN,
|
||||
value: `
|
||||
StApps bietet Studierenden aller beteiligten Hochschulen eine qualitativ
|
||||
hochwertige App für den Studienalltag. StApps-Verbundpartner integrieren
|
||||
Open StApps bietet Studierenden aller beteiligten Hochschulen eine qualitativ
|
||||
hochwertige App für den Studienalltag. Open StApps-Verbundpartner integrieren
|
||||
generalisierbare Studierendenprozesse so in App-Module, dass diese auch
|
||||
von anderen Hochschulen verwendet werden können. Die zur StApps-App ankommenden
|
||||
Daten einer Datenquelle einer Art sind in einem generalisierten Datenmodell
|
||||
so aufbereitet, dass ein Austausch der Datenquelle problemlos möglich ist und
|
||||
die StApps-App problemlos weiterhin funktionsfähig bleibt.
|
||||
von anderen Hochschulen verwendet werden können. Die in der Open StApps App
|
||||
verwendeten Daten einer Datenquelle sind in einem generalisierten Datenmodell
|
||||
so aufbereitet, dass ein Austausch oder Abschaltung der Datenquelle problemlos möglich
|
||||
ist und die Open StApps App problemlos weiterhin funktionsfähig bleibt.
|
||||
`,
|
||||
translations: {
|
||||
en: {
|
||||
value: `
|
||||
This would be the english content`,
|
||||
Open StApps provides students from all participating universities with a
|
||||
high-quality app for everyday study. Open StApps partners integrate
|
||||
generalizable student processes into app modules in such a way that they can be
|
||||
can be used by other universities. The data of a data source used in the Open StApps app
|
||||
is prepared in a generalized data model in a way that the data source can be easily
|
||||
exchanged or switched off while the app continues to function without any problems.
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
translations: {
|
||||
en: {
|
||||
title:
|
||||
'Collaborative project of multiple universities for a single generic study app',
|
||||
title: 'Collaborative project of multiple universities for a single generic study app',
|
||||
},
|
||||
},
|
||||
type: SCAboutPageContentType.SECTION,
|
||||
@@ -200,10 +190,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.MARKDOWN,
|
||||
},
|
||||
{
|
||||
value:
|
||||
'[mail]()<br>' +
|
||||
'[+49 12 345 67890]()<br>' +
|
||||
'[https://localhost/]()',
|
||||
value: '[mail]()<br>' + '[+49 12 345 67890]()<br>' + '[https://localhost/]()',
|
||||
translations: {
|
||||
en: {
|
||||
value: 'This would be the english contact information',
|
||||
@@ -223,7 +210,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.SECTION,
|
||||
},
|
||||
{
|
||||
icon: 'newspaper',
|
||||
icon: 'campaign',
|
||||
title: 'Neue Funktionen / Gelöste Probleme',
|
||||
link: 'changelog',
|
||||
translations: {
|
||||
@@ -234,7 +221,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'document',
|
||||
icon: 'description',
|
||||
title: 'Impressum',
|
||||
link: 'imprint',
|
||||
translations: {
|
||||
@@ -245,7 +232,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'shield-half',
|
||||
icon: 'policy',
|
||||
title: 'Datenschutz',
|
||||
link: 'privacy',
|
||||
translations: {
|
||||
@@ -256,7 +243,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'reader',
|
||||
icon: 'text_snippet',
|
||||
title: 'Allgemeine Geschäftsbedingungen',
|
||||
link: 'terms',
|
||||
translations: {
|
||||
@@ -267,7 +254,7 @@ const config: Partial<SCConfigFile> = {
|
||||
type: SCAboutPageContentType.ROUTER_LINK,
|
||||
},
|
||||
{
|
||||
icon: 'library',
|
||||
icon: 'copyright',
|
||||
title: 'Bibliotheken und Lizenzen',
|
||||
link: 'licenses',
|
||||
translations: {
|
||||
@@ -363,26 +350,11 @@ const config: Partial<SCConfigFile> = {
|
||||
campusPolygon: {
|
||||
coordinates: [
|
||||
[
|
||||
[
|
||||
8.660432999690723,
|
||||
50.123027017044436,
|
||||
],
|
||||
[
|
||||
8.675496285518358,
|
||||
50.123027017044436,
|
||||
],
|
||||
[
|
||||
8.675496285518358,
|
||||
50.13066176448642,
|
||||
],
|
||||
[
|
||||
8.660432999690723,
|
||||
50.13066176448642,
|
||||
],
|
||||
[
|
||||
8.660432999690723,
|
||||
50.123027017044436,
|
||||
],
|
||||
[8.660_432_999_690_723, 50.123_027_017_044_436],
|
||||
[8.675_496_285_518_358, 50.123_027_017_044_436],
|
||||
[8.675_496_285_518_358, 50.130_661_764_486_42],
|
||||
[8.660_432_999_690_723, 50.130_661_764_486_42],
|
||||
[8.660_432_999_690_723, 50.123_027_017_044_436],
|
||||
],
|
||||
],
|
||||
type: 'Polygon',
|
||||
@@ -397,8 +369,7 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
menus: [
|
||||
{
|
||||
icon: 'menu',
|
||||
id: 'main',
|
||||
icon: 'home',
|
||||
items: [
|
||||
{
|
||||
icon: 'newspaper',
|
||||
@@ -427,33 +398,7 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'calendar',
|
||||
route: '/schedule',
|
||||
title: 'schedule',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Stundenplan',
|
||||
},
|
||||
en: {
|
||||
title: 'schedule',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'cafe',
|
||||
route: '/canteen',
|
||||
title: 'canteen',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Mensa',
|
||||
},
|
||||
en: {
|
||||
title: 'canteen',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'search',
|
||||
icon: 'local_library',
|
||||
route: '/hebis-search',
|
||||
title: 'library catalog',
|
||||
translations: {
|
||||
@@ -466,7 +411,7 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'folder',
|
||||
icon: 'inventory_2',
|
||||
route: '/catalog',
|
||||
title: 'course catalog',
|
||||
translations: {
|
||||
@@ -478,49 +423,51 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'map',
|
||||
route: '/map',
|
||||
title: 'campus map',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Campus Karte',
|
||||
},
|
||||
en: {
|
||||
title: 'campus map',
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
name: 'main menu',
|
||||
title: 'overview',
|
||||
route: '/overview',
|
||||
translations: {
|
||||
de: {
|
||||
name: 'Hauptmenü',
|
||||
title: 'Übersicht',
|
||||
},
|
||||
en: {
|
||||
name: 'main menu',
|
||||
title: 'overview',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'person',
|
||||
id: 'personal',
|
||||
icon: 'local_cafe',
|
||||
items: [],
|
||||
route: '/canteen',
|
||||
title: 'canteen',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Mensa',
|
||||
},
|
||||
en: {
|
||||
title: 'canteen',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'map',
|
||||
items: [],
|
||||
route: '/map',
|
||||
title: 'campus map',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Campus Karte',
|
||||
},
|
||||
en: {
|
||||
title: 'campus map',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'school',
|
||||
items: [
|
||||
{
|
||||
icon: 'library',
|
||||
route: '/library-account',
|
||||
title: 'library account',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Bibliothekskonto',
|
||||
},
|
||||
en: {
|
||||
title: 'library account',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'star',
|
||||
icon: 'grade',
|
||||
route: '/favorites',
|
||||
title: 'favorites',
|
||||
translations: {
|
||||
@@ -533,15 +480,29 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'person',
|
||||
route: '/profile',
|
||||
title: 'profile',
|
||||
icon: 'calendar_today',
|
||||
route: '/schedule',
|
||||
title: 'schedule',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Profil',
|
||||
title: 'Stundenplan',
|
||||
},
|
||||
en: {
|
||||
title: 'profile',
|
||||
title: 'schedule',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
authProvider: 'paia',
|
||||
icon: 'badge',
|
||||
route: '/library-account',
|
||||
title: 'library account',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Bibliothekskonto',
|
||||
},
|
||||
en: {
|
||||
title: 'library account',
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -559,20 +520,7 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'information',
|
||||
route: '/about',
|
||||
title: 'about',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Über StApps',
|
||||
},
|
||||
en: {
|
||||
title: 'About StApps',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'chatbubbles',
|
||||
icon: 'rate_review',
|
||||
route: '/feedback',
|
||||
title: 'feedback',
|
||||
translations: {
|
||||
@@ -584,24 +532,35 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'info',
|
||||
route: '/about',
|
||||
title: 'about',
|
||||
translations: {
|
||||
de: {
|
||||
title: 'Über Open StApps',
|
||||
},
|
||||
en: {
|
||||
title: 'About Open StApps',
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
name: 'Your Study-App',
|
||||
title: 'my app',
|
||||
route: '/profile',
|
||||
translations: {
|
||||
de: {
|
||||
name: 'Deine Studi-App',
|
||||
title: 'Meine App',
|
||||
},
|
||||
en: {
|
||||
name: 'Your Study-App',
|
||||
title: 'my app',
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
name: 'Goethe-Uni',
|
||||
privacyPolicyUrl: 'https://mobile.server.uni-frankfurt.de/_static/privacy.md',
|
||||
settings: [
|
||||
userGroupSetting,
|
||||
languageSetting,
|
||||
],
|
||||
settings: [userGroupSetting, languageSetting],
|
||||
},
|
||||
auth: {
|
||||
paia: {
|
||||
@@ -611,7 +570,8 @@ const config: Partial<SCConfigFile> = {
|
||||
url: 'https://hds.hebis.de/Shibboleth.sso/UBFFM?target=https://hds.hebis.de/ubffm/paia_login_stub.php',
|
||||
},
|
||||
endpoints: {
|
||||
authorization: 'https://hds.hebis.de/Shibboleth.sso/UBFFM?target=https://hds.hebis.de/ubffm/paia_login_stub.php',
|
||||
authorization:
|
||||
'https://hds.hebis.de/Shibboleth.sso/UBFFM?target=https://hds.hebis.de/ubffm/paia_login_stub.php',
|
||||
mapping: {
|
||||
id: '$.email',
|
||||
name: '$.name',
|
||||
@@ -623,14 +583,10 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
},
|
||||
backend: {
|
||||
SCVersion: JSON.parse((readFileSync(resolve('.', '.', 'package.json'), 'utf-8')).toString())
|
||||
.dependencies['@openstapps/core'],
|
||||
SCVersion: JSON.parse(readFileSync(path.resolve('.', '.', 'package.json'), 'utf8').toString())
|
||||
.dependencies['@openstapps/core'],
|
||||
externalRequestTimeout: 5000,
|
||||
hiddenTypes: [
|
||||
SCThingType.DateSeries,
|
||||
SCThingType.Diff,
|
||||
SCThingType.Floor,
|
||||
],
|
||||
hiddenTypes: [SCThingType.DateSeries, SCThingType.Diff, SCThingType.Floor],
|
||||
mappingIgnoredTags: ['minlength', 'pattern', 'see', 'tjs-format'],
|
||||
maxMultiSearchRouteQueries: 5,
|
||||
maxRequestBodySize: 512 * 1024,
|
||||
@@ -659,20 +615,12 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
{
|
||||
fieldName: 'geo',
|
||||
onlyOnTypes: [
|
||||
SCThingType.Building,
|
||||
SCThingType.PointOfInterest,
|
||||
SCThingType.Room,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.Building, SCThingType.PointOfInterest, SCThingType.Room],
|
||||
sortTypes: ['distance'],
|
||||
},
|
||||
{
|
||||
fieldName: 'geo',
|
||||
onlyOnTypes: [
|
||||
SCThingType.Building,
|
||||
SCThingType.PointOfInterest,
|
||||
SCThingType.Room,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.Building, SCThingType.PointOfInterest, SCThingType.Room],
|
||||
sortTypes: ['distance'],
|
||||
},
|
||||
{
|
||||
@@ -690,9 +638,7 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
{
|
||||
fieldName: 'offers',
|
||||
onlyOnTypes: [
|
||||
SCThingType.Dish,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.Dish],
|
||||
sortTypes: ['price'],
|
||||
},
|
||||
],
|
||||
@@ -725,31 +671,19 @@ const config: Partial<SCConfigFile> = {
|
||||
},
|
||||
{
|
||||
fieldName: 'academicTerms.acronym',
|
||||
onlyOnTypes: [
|
||||
SCThingType.AcademicEvent,
|
||||
SCThingType.SportCourse,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.AcademicEvent, SCThingType.SportCourse],
|
||||
},
|
||||
{
|
||||
fieldName: 'academicTerm.acronym',
|
||||
onlyOnTypes: [
|
||||
SCThingType.Catalog,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.Catalog],
|
||||
},
|
||||
{
|
||||
fieldName: 'majors',
|
||||
onlyOnTypes: [
|
||||
SCThingType.AcademicEvent,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.AcademicEvent],
|
||||
},
|
||||
{
|
||||
fieldName: 'keywords',
|
||||
onlyOnTypes: [
|
||||
SCThingType.Article,
|
||||
SCThingType.Book,
|
||||
SCThingType.Message,
|
||||
SCThingType.Video,
|
||||
],
|
||||
onlyOnTypes: [SCThingType.Article, SCThingType.Book, SCThingType.Message, SCThingType.Video],
|
||||
},
|
||||
{
|
||||
fieldName: 'type',
|
||||
@@ -772,7 +706,7 @@ const config: Partial<SCConfigFile> = {
|
||||
{
|
||||
factor: 1,
|
||||
fields: {
|
||||
'categories': {
|
||||
categories: {
|
||||
'course': 1.08,
|
||||
'integrated course': 1.08,
|
||||
'introductory class': 1.05,
|
||||
@@ -790,11 +724,11 @@ const config: Partial<SCConfigFile> = {
|
||||
{
|
||||
factor: 1,
|
||||
fields: {
|
||||
'categories': {
|
||||
'cafe': 1.1,
|
||||
'learn': 1.1,
|
||||
'library': 1.2,
|
||||
'restaurant': 1.1,
|
||||
categories: {
|
||||
cafe: 1.1,
|
||||
learn: 1.1,
|
||||
library: 1.2,
|
||||
restaurant: 1.1,
|
||||
},
|
||||
},
|
||||
type: SCThingType.PointOfInterest,
|
||||
@@ -802,7 +736,7 @@ const config: Partial<SCConfigFile> = {
|
||||
{
|
||||
factor: 1,
|
||||
fields: {
|
||||
'categories': {
|
||||
categories: {
|
||||
'main dish': 2,
|
||||
},
|
||||
},
|
||||
@@ -813,7 +747,7 @@ const config: Partial<SCConfigFile> = {
|
||||
{
|
||||
factor: 1,
|
||||
fields: {
|
||||
'categories': {
|
||||
categories: {
|
||||
'cafe': 2,
|
||||
'canteen': 2,
|
||||
'restaurant': 2,
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{
|
||||
"metricsPath": "/metrics",
|
||||
"collectDefaultMetrics": true,
|
||||
"requestDurationBuckets": [0.1, 0.5, 1, 2, 5, 10, 20],
|
||||
"requestLengthBuckets": [512, 1024, 5120, 10240, 51200, 102400],
|
||||
"responseLengthBuckets": [512, 1024, 5120, 10240, 51200, 102400]
|
||||
"includeMethod": true,
|
||||
"includePath": true,
|
||||
"promClient": {
|
||||
"collectDefaultMetrics": {
|
||||
}
|
||||
},
|
||||
"for-more-options-see": "https://github.com/jochen-schweizer/express-prom-bundle#options"
|
||||
}
|
||||
|
||||
2024
package-lock.json
generated
2024
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
73
package.json
73
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@openstapps/backend",
|
||||
"version": "0.2.0",
|
||||
"version": "0.6.0",
|
||||
"description": "A reference implementation for a StApps backend",
|
||||
"license": "AGPL-3.0-only",
|
||||
"author": "André Bierlein <andre.mt.bierlein@gmail.com>",
|
||||
@@ -16,11 +16,11 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "npm run lint && npm run compile",
|
||||
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md && git commit -m 'docs: update changelog'",
|
||||
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md",
|
||||
"check-configuration": "openstapps-configuration",
|
||||
"compile": "rimraf lib && tsc && prepend lib/cli.js '#!/usr/bin/env node\n'",
|
||||
"documentation": "typedoc --includeVersion --out docs --readme README.md --listInvalidSymbolLinks --entryPointStrategy expand src && openstapps-core-tools openapi ./node_modules/@openstapps/core/lib ./docs/openapi && redoc-cli bundle docs/openapi/openapi.json -o docs/openapi/index.html",
|
||||
"postversion": "npm run changelog",
|
||||
"version": "npm run changelog",
|
||||
"prepublishOnly": "npm ci && npm run build",
|
||||
"preversion": "npm run prepublishOnly",
|
||||
"push": "git push && git push origin \"v$npm_package_version\"",
|
||||
@@ -28,75 +28,74 @@
|
||||
"start-debug": "STAPPS_LOG_LEVEL=31 NODE_CONFIG_ENV=elasticsearch ALLOW_NO_TRANSPORT=true node ./lib/cli.js --require ts-node/register",
|
||||
"test": "npm run test-unit && npm run test-integration",
|
||||
"test-unit": "env NODE_CONFIG_ENV=elasticsearch ALLOW_NO_TRANSPORT=true STAPPS_LOG_LEVEL=0 nyc mocha --require ts-node/register --exit 'test/**/*.spec.ts'",
|
||||
"test-integration": "sudo docker-compose -f integration-test.yml pull && sudo docker-compose -f integration-test.yml up --build --abort-on-container-exit --exit-code-from apicli",
|
||||
"test-integration": "docker-compose -f integration-test.yml pull && docker-compose -f integration-test.yml up --build --abort-on-container-exit --exit-code-from apicli",
|
||||
"lint": "eslint -c .eslintrc.json --ignore-path .eslintignore --ext .ts src/ test/",
|
||||
"lint:fix": "eslint --fix -c .eslintrc.json --ignore-path .eslintignore --ext .ts src/ test/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@elastic/elasticsearch": "5.6.22",
|
||||
"@openstapps/core": "0.69.0",
|
||||
"@openstapps/core-tools": "0.32.0",
|
||||
"@openstapps/logger": "1.0.0",
|
||||
"@types/express-prometheus-middleware": "1.2.1",
|
||||
"@types/node": "14.18.24",
|
||||
"config": "3.3.7",
|
||||
"@openstapps/core": "0.74.0",
|
||||
"@openstapps/core-tools": "0.34.0",
|
||||
"@openstapps/logger": "1.1.1",
|
||||
"@types/node": "14.18.36",
|
||||
"config": "3.3.9",
|
||||
"cors": "2.8.5",
|
||||
"express": "4.18.1",
|
||||
"express-prometheus-middleware": "1.2.0",
|
||||
"express": "4.18.2",
|
||||
"express-prom-bundle": "6.6.0",
|
||||
"express-promise-router": "4.1.1",
|
||||
"got": "11.8.5",
|
||||
"got": "11.8.6",
|
||||
"moment": "2.29.4",
|
||||
"morgan": "1.10.0",
|
||||
"nock": "13.2.9",
|
||||
"nock": "13.3.0",
|
||||
"node-cache": "5.1.2",
|
||||
"node-cron": "3.0.2",
|
||||
"nodemailer": "6.7.8",
|
||||
"prom-client": "14.0.1",
|
||||
"nodemailer": "6.9.1",
|
||||
"prom-client": "14.1.1",
|
||||
"promise-queue": "2.2.5",
|
||||
"ts-node": "10.9.1",
|
||||
"uuid": "8.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openstapps/configuration": "0.33.0",
|
||||
"@openstapps/es-mapping-generator": "0.3.0",
|
||||
"@openstapps/configuration": "0.34.0",
|
||||
"@openstapps/es-mapping-generator": "0.4.0",
|
||||
"@openstapps/eslint-config": "1.1.0",
|
||||
"@testdeck/mocha": "0.2.0",
|
||||
"@types/chai": "4.3.3",
|
||||
"@testdeck/mocha": "0.3.3",
|
||||
"@types/chai": "4.3.4",
|
||||
"@types/chai-as-promised": "7.1.5",
|
||||
"@types/config": "3.3.0",
|
||||
"@types/cors": "2.8.12",
|
||||
"@types/cors": "2.8.13",
|
||||
"@types/elasticsearch": "5.0.40",
|
||||
"@types/express": "4.17.13",
|
||||
"@types/express": "4.17.16",
|
||||
"@types/geojson": "1.0.6",
|
||||
"@types/mocha": "9.1.1",
|
||||
"@types/morgan": "1.9.3",
|
||||
"@types/node-cron": "3.0.2",
|
||||
"@types/nodemailer": "6.4.5",
|
||||
"@types/mocha": "10.0.1",
|
||||
"@types/morgan": "1.9.4",
|
||||
"@types/node-cron": "3.0.7",
|
||||
"@types/nodemailer": "6.4.7",
|
||||
"@types/promise-queue": "2.2.0",
|
||||
"@types/sinon-express-mock": "1.3.9",
|
||||
"@types/supertest": "2.0.12",
|
||||
"@types/uuid": "8.3.4",
|
||||
"@typescript-eslint/eslint-plugin": "5.33.1",
|
||||
"@typescript-eslint/parser": "5.33.1",
|
||||
"chai": "4.3.6",
|
||||
"@typescript-eslint/eslint-plugin": "5.42.0",
|
||||
"@typescript-eslint/parser": "5.42.0",
|
||||
"chai": "4.3.7",
|
||||
"chai-as-promised": "7.1.1",
|
||||
"conventional-changelog-cli": "2.2.2",
|
||||
"eslint": "8.22.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"eslint-plugin-jsdoc": "39.3.6",
|
||||
"eslint": "8.33.0",
|
||||
"eslint-config-prettier": "8.6.0",
|
||||
"eslint-plugin-jsdoc": "39.7.4",
|
||||
"eslint-plugin-prettier": "4.2.1",
|
||||
"eslint-plugin-unicorn": "43.0.2",
|
||||
"get-port": "5.1.1",
|
||||
"mocha": "10.0.0",
|
||||
"mocha": "10.2.0",
|
||||
"mocked-env": "1.3.5",
|
||||
"nyc": "15.1.0",
|
||||
"prepend-file-cli": "1.0.6",
|
||||
"prettier": "2.7.1",
|
||||
"redoc-cli": "0.13.18",
|
||||
"prettier": "2.8.3",
|
||||
"redoc-cli": "0.13.20",
|
||||
"rimraf": "3.0.2",
|
||||
"sinon": "14.0.0",
|
||||
"sinon": "14.0.2",
|
||||
"sinon-express-mock": "2.2.1",
|
||||
"supertest": "6.2.4",
|
||||
"supertest": "6.3.3",
|
||||
"typedoc": "0.22.18",
|
||||
"typescript": "4.4.4"
|
||||
},
|
||||
|
||||
@@ -13,13 +13,10 @@
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
import {Logger} from '@openstapps/logger';
|
||||
import express from 'express';
|
||||
import expressPrometheusMiddleware from 'express-prometheus-middleware';
|
||||
import express_prom_bundle from 'express-prom-bundle';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
type UserOptions = Parameters<typeof expressPrometheusMiddleware>[0];
|
||||
|
||||
/**
|
||||
* Create and configure a new Express Prometheus Middleware instance
|
||||
*
|
||||
@@ -29,15 +26,15 @@ type UserOptions = Parameters<typeof expressPrometheusMiddleware>[0];
|
||||
*
|
||||
* @returns express.Express
|
||||
*/
|
||||
export function getPrometheusMiddleware(): express.Express {
|
||||
export function getPrometheusMiddleware(): express_prom_bundle.Middleware {
|
||||
const configFileName = path.join('./config', 'prometheus.json');
|
||||
let options: UserOptions = {};
|
||||
let options: express_prom_bundle.Opts = {};
|
||||
|
||||
try {
|
||||
options = JSON.parse(fs.readFileSync(configFileName, 'utf8'));
|
||||
} catch (error) {
|
||||
Logger.warn('Could not get options for Prometheus Middleware.', error);
|
||||
Logger.warn("Couldn't get options from config file for Prometheus Middleware.", error);
|
||||
}
|
||||
|
||||
return expressPrometheusMiddleware(options);
|
||||
return express_prom_bundle(options);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ const httpVerbs = [
|
||||
/**
|
||||
* Strings that can be used as HTTP verbs (e.g. in requests): 'get' | 'post' | 'put' | 'delete' etc.
|
||||
*/
|
||||
export type HTTPVerb = typeof httpVerbs[number];
|
||||
export type HTTPVerb = (typeof httpVerbs)[number];
|
||||
|
||||
/**
|
||||
* Provides information if a text (representing a method) is an HTTP verb
|
||||
|
||||
Reference in New Issue
Block a user