ApiServerAlgorithmen.ts 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. import { BaseApi } from '../api/BaseApi';
  2. import { AbschlussErgebnis, cast_de_nrw_schule_svws_core_data_abschluss_AbschlussErgebnis } from '../core/data/abschluss/AbschlussErgebnis';
  3. import { GEAbschlussFaecher, cast_de_nrw_schule_svws_core_data_abschluss_GEAbschlussFaecher } from '../core/data/abschluss/GEAbschlussFaecher';
  4. import { GostBelegpruefungErgebnis, cast_de_nrw_schule_svws_core_abschluss_gost_GostBelegpruefungErgebnis } from '../core/abschluss/gost/GostBelegpruefungErgebnis';
  5. import { GostBelegpruefungsdaten, cast_de_nrw_schule_svws_core_data_gost_GostBelegpruefungsdaten } from '../core/data/gost/GostBelegpruefungsdaten';
  6. export class ApiServerAlgorithmen extends BaseApi {
  7. /**
  8. *
  9. * Erstellt eine neue API mit der übergebenen Konfiguration.
  10. *
  11. * @param {string} url - die URL des Servers: Alle Pfadangaben sind relativ zu dieser URL
  12. * @param {string} username - der Benutzername für den API-Zugriff
  13. * @param {string} password - das Kennwort des Benutzers für den API-Zugriff
  14. */
  15. public constructor(url : string, username : string, password : string) {
  16. super(url, username, password);
  17. }
  18. /**
  19. * Implementierung der POST-Methode getGesamtschuleAbschlussHA10 für den Zugriff auf die URL https://{hostname}/api/gesamtschule/abschluss/ha10
  20. *
  21. * Prüft anhand der übergeben Fächerdaten, ob ein Hauptschulabschluss der Klasse 10 an einer Gesamtschule erreicht wird oder nicht. Im Falle, dass er nicht erreicht wird, werden ggf. Nachprüfungsfächer zurückgegeben.
  22. *
  23. * Mögliche HTTP-Antworten:
  24. * Code 200: Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  25. * - Mime-Type: application/json
  26. * - Rückgabe-Typ: AbschlussErgebnis
  27. *
  28. * @param {GEAbschlussFaecher} data - der Request-Body für die HTTP-Methode
  29. *
  30. * @returns Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  31. */
  32. public async getGesamtschuleAbschlussHA10(data : GEAbschlussFaecher) : Promise<AbschlussErgebnis> {
  33. let path : string = "/api/gesamtschule/abschluss/ha10";
  34. let body : string = GEAbschlussFaecher.transpilerToJSON(data);
  35. const result : string = await super.postJSON(path, body);
  36. const text = result;
  37. return AbschlussErgebnis.transpilerFromJSON(text);
  38. }
  39. /**
  40. * Implementierung der POST-Methode getGesamtschuleAbschlussHA9 für den Zugriff auf die URL https://{hostname}/api/gesamtschule/abschluss/ha9
  41. *
  42. * Prüft anhand der übergeben Fächerdaten, ob ein Hauptschulabschluss der Klasse 9 an einer Gesamtschule erreicht wird oder nicht. Im Falle, dass er nicht erreicht wird, werden ggf. Nachprüfungsfächer zurückgegeben.
  43. *
  44. * Mögliche HTTP-Antworten:
  45. * Code 200: Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  46. * - Mime-Type: application/json
  47. * - Rückgabe-Typ: AbschlussErgebnis
  48. * Code 400: Es wurden ungültige Werte übergeben, so dass kein Abschluss berechnet werden kann.
  49. *
  50. * @param {GEAbschlussFaecher} data - der Request-Body für die HTTP-Methode
  51. *
  52. * @returns Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  53. */
  54. public async getGesamtschuleAbschlussHA9(data : GEAbschlussFaecher) : Promise<AbschlussErgebnis> {
  55. let path : string = "/api/gesamtschule/abschluss/ha9";
  56. let body : string = GEAbschlussFaecher.transpilerToJSON(data);
  57. const result : string = await super.postJSON(path, body);
  58. const text = result;
  59. return AbschlussErgebnis.transpilerFromJSON(text);
  60. }
  61. /**
  62. * Implementierung der POST-Methode getGesamtschuleAbschlussMSA für den Zugriff auf die URL https://{hostname}/api/gesamtschule/abschluss/msa
  63. *
  64. * Prüft anhand der übergeben Fächerdaten, ob ein Mittlerer Schulabschluss nach der Klasse 10 an einer Gesamtschule erreicht wird oder nicht. Im Falle, dass er nicht erreicht wird, werden ggf. Nachprüfungsfächer zurückgegeben.
  65. *
  66. * Mögliche HTTP-Antworten:
  67. * Code 200: Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  68. * - Mime-Type: application/json
  69. * - Rückgabe-Typ: AbschlussErgebnis
  70. *
  71. * @param {GEAbschlussFaecher} data - der Request-Body für die HTTP-Methode
  72. *
  73. * @returns Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  74. */
  75. public async getGesamtschuleAbschlussMSA(data : GEAbschlussFaecher) : Promise<AbschlussErgebnis> {
  76. let path : string = "/api/gesamtschule/abschluss/msa";
  77. let body : string = GEAbschlussFaecher.transpilerToJSON(data);
  78. const result : string = await super.postJSON(path, body);
  79. const text = result;
  80. return AbschlussErgebnis.transpilerFromJSON(text);
  81. }
  82. /**
  83. * Implementierung der POST-Methode getGesamtschuleAbschlussMSAQ für den Zugriff auf die URL https://{hostname}/api/gesamtschule/abschluss/msaq
  84. *
  85. * Prüft anhand der übergeben Fächerdaten, ob die Berechtigung zum Besuch der gymnasialen Oberstufe im Rahmen eines Mittlerer Schulabschlusses nach der Klasse 10 an einer Gesamtschule erreicht wird oder nicht.
  86. *
  87. * Mögliche HTTP-Antworten:
  88. * Code 200: Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  89. * - Mime-Type: application/json
  90. * - Rückgabe-Typ: AbschlussErgebnis
  91. *
  92. * @param {GEAbschlussFaecher} data - der Request-Body für die HTTP-Methode
  93. *
  94. * @returns Das Ergebnis der Abschlussberechnung, ggf. mit Nachprüfungsmöglichkeiten
  95. */
  96. public async getGesamtschuleAbschlussMSAQ(data : GEAbschlussFaecher) : Promise<AbschlussErgebnis> {
  97. let path : string = "/api/gesamtschule/abschluss/msaq";
  98. let body : string = GEAbschlussFaecher.transpilerToJSON(data);
  99. const result : string = await super.postJSON(path, body);
  100. const text = result;
  101. return AbschlussErgebnis.transpilerFromJSON(text);
  102. }
  103. /**
  104. * Implementierung der POST-Methode getGesamtschuleAbschlussPrognose für den Zugriff auf die URL https://{hostname}/api/gesamtschule/abschluss/prognose
  105. *
  106. * Führt anhand der übergeben Fächerdaten eine Abschlussprognose für den Gesamtschulabschluss nach Klasse 9 bzw. Klasse 10 durch.Wird der Jahrgang 10 angegeben, so findet keine Prüfung auf den HA9 statt.
  107. *
  108. * Mögliche HTTP-Antworten:
  109. * Code 200: Das Ergebnis der Prognoseberechnung, ggf. mit Nachprüfungsmöglichkeiten
  110. * - Mime-Type: application/json
  111. * - Rückgabe-Typ: AbschlussErgebnis
  112. *
  113. * @param {GEAbschlussFaecher} data - der Request-Body für die HTTP-Methode
  114. *
  115. * @returns Das Ergebnis der Prognoseberechnung, ggf. mit Nachprüfungsmöglichkeiten
  116. */
  117. public async getGesamtschuleAbschlussPrognose(data : GEAbschlussFaecher) : Promise<AbschlussErgebnis> {
  118. let path : string = "/api/gesamtschule/abschluss/prognose";
  119. let body : string = GEAbschlussFaecher.transpilerToJSON(data);
  120. const result : string = await super.postJSON(path, body);
  121. const text = result;
  122. return AbschlussErgebnis.transpilerFromJSON(text);
  123. }
  124. /**
  125. * Implementierung der POST-Methode getGostBelegpruefungEF1 für den Zugriff auf die URL https://{hostname}/api/gost/belegpruefung/EF1
  126. *
  127. * Prüft anhand der übergeben Abiturdaten, ob die Belegung in den Abiturdaten korrekt ist oder nicht. Es werden ggf. auch Belegungsfehler und Hinweise zur Belegung zurückgegeben.
  128. *
  129. * Mögliche HTTP-Antworten:
  130. * Code 200: Das Ergebnis der Belegprüfung, ggf. mit Belegungsfehlern
  131. * - Mime-Type: application/json
  132. * - Rückgabe-Typ: GostBelegpruefungErgebnis
  133. *
  134. * @param {GostBelegpruefungsdaten} data - der Request-Body für die HTTP-Methode
  135. *
  136. * @returns Das Ergebnis der Belegprüfung, ggf. mit Belegungsfehlern
  137. */
  138. public async getGostBelegpruefungEF1(data : GostBelegpruefungsdaten) : Promise<GostBelegpruefungErgebnis> {
  139. let path : string = "/api/gost/belegpruefung/EF1";
  140. let body : string = GostBelegpruefungsdaten.transpilerToJSON(data);
  141. const result : string = await super.postJSON(path, body);
  142. const text = result;
  143. return GostBelegpruefungErgebnis.transpilerFromJSON(text);
  144. }
  145. /**
  146. * Implementierung der POST-Methode getGostBelegpruefungGesamt für den Zugriff auf die URL https://{hostname}/api/gost/belegpruefung/gesamt
  147. *
  148. * Prüft anhand der übergeben Abiturdaten, ob die Belegung in den Abiturdaten korrekt ist oder nicht. Es werden ggf. auch Belegungsfehler und Hinweise zur Belegung zurückgegeben.
  149. *
  150. * Mögliche HTTP-Antworten:
  151. * Code 200: Das Ergebnis der Belegprüfung, ggf. mit Belegungsfehlern
  152. * - Mime-Type: application/json
  153. * - Rückgabe-Typ: GostBelegpruefungErgebnis
  154. *
  155. * @param {GostBelegpruefungsdaten} data - der Request-Body für die HTTP-Methode
  156. *
  157. * @returns Das Ergebnis der Belegprüfung, ggf. mit Belegungsfehlern
  158. */
  159. public async getGostBelegpruefungGesamt(data : GostBelegpruefungsdaten) : Promise<GostBelegpruefungErgebnis> {
  160. let path : string = "/api/gost/belegpruefung/gesamt";
  161. let body : string = GostBelegpruefungsdaten.transpilerToJSON(data);
  162. const result : string = await super.postJSON(path, body);
  163. const text = result;
  164. return GostBelegpruefungErgebnis.transpilerFromJSON(text);
  165. }
  166. }